[Ruby on Rails] Ranglistenanzeige (Gesamt, Durchschnittswert)

Ziel

Ranking-Anzeige

Entwicklungsumgebung

ruby 2.5.7 Rails 5.2.4.3 OS: macOS Catalina

Annahme

controller Wenn Sie es mit einem Controller machen können, ist es fast möglich!

Durchschnittliches Ranking: App/controllers/users_controller.rb


  def rank
    @users = User.
              find(Post.
                    group(:score).
                    order('avg(score) desc').
                    pluck(:user_id)
                  )
  end
Supplement - @ Users = User.find (): Geben Sie den vom Benutzermodell erhaltenen Wert in @user unter den folgenden Bedingungen ein. -Post.group (: score): Gruppieren nach Score-Spalte aus dem Post-Modell ・ Reihenfolge ('Durchschnitt (Punktzahl) absteigend'): In absteigender Reihenfolge nach Durchschnittspunktzahl sortieren -Pluck (: user_id): Ordnen Sie alle mit dem obigen Wert user_id an

Gesamtrangliste: App/controllers/posts_controller.rb


  def rank
    @posts = Post.
              find(Favorite.
                    group(:post_id).
                    order('count(post_id) desc').
                    pluck(:post_id)
                  )
  end
Supplement ・ @Posts = Post.find (): Geben Sie den vom Post-Modell erhaltenen Wert unter den folgenden Bedingungen in @post ein. -Favorite.group (: post_id): Gruppieren nach post_id-Spalte aus dem Lieblingsmodell -Order ('count (post_id) desc'): In absteigender Reihenfolge nach der Nummer von post_id sortieren -Pluck (: post_id): Alle mit dem obigen Wert post_id sind angeordnet

view Kann wie unten gezeigt in absteigender Reihenfolge angezeigt werden

python


<% @users.each do |user| %>
<% end %>
<% @posts.each do |user| %>
<% end %>

Bei Verwendung von Kaminari

Es ist in Ordnung, wenn Sie Kaminari.paginate_array () vorne und .page (params [: page]) am Ende hinzufügen.

python


@posts = Kaminari.paginate_array(Post.find(Favorite.group(:post_id).order('count(post_id) desc').pluck(:post_id))).page(params[:page])

Referenzseite

[Einfache Rangfolge mit Rails] (https://qiita.com/mitsumitsu1128/items/18fa5e49a27e727f00b4) [Rails] Implementierung der Ranking-Funktion

Recommended Posts

[Ruby on Rails] Ranglistenanzeige (Gesamt, Durchschnittswert)
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
Ruby on Rails Elementary
Ruby on Rails Grundlagen
[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
[Ruby on Rails] Zeigt den Seitentitel schnell im Browser an
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
[Ruby on Rails] Paging-Funktion eingeführt
Grundkenntnisse in Ruby on Rails
Progate Ruby on Rails5 Rückblick
Verwendung von Ruby on Rails
Ruby on Rails Japanisch-Englisch kompatibler i18n
(Ruby on Rails6) Gepostete Inhalte "löschen"
[Ruby on Rails] CSV-Ausgabefunktion
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
[Ruby on Rails] Erstellung der Bestätigungsseite
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Praktische Hilfsmethode
[Ruby on Rails] Stoppen Sie "Looping bis ..."
[Ruby on Rails] Einführung der Anfangsdaten
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
Ruby on Rails6 Praktischer Leitfaden cp13 ~ cp15 [Memo]
[Ruby on Rails] Test mit RSpec anzeigen
[Ruby on Rails] Codeprüfung mit Rubocop-Airbnb
[Ruby on Rails] 1 Modell CRUD (Routing Main)
Ruby on Rails-Installationsmethode [Mac Edition]
Modell [Ruby on Rails], Befehl für Controller-Terminal
Befehl zum Erstellen / Löschen von Ruby on Rails-Modellen
Ruby on Rails6 Praktischer Leitfaden cp7 ~ cp9 [Memo]
Ruby on Rails in Visual Studio-Codespaces