Heim > Datenbank > MySQL-Tutorial > Wie rufe ich mithilfe von ActiveRecord-Zuordnungen die fünf meistgehörten Songs ab?

Wie rufe ich mithilfe von ActiveRecord-Zuordnungen die fünf meistgehörten Songs ab?

DDD
Freigeben: 2024-11-27 14:23:12
Original
618 Leute haben es durchsucht

How to Retrieve the Top 5 Most Listened-to Songs Using ActiveRecord Associations?

Ordnen von ActiveRecord-Datensätzen nach Assoziationsanzahl

In Rails 3 können Sie mithilfe des ActiveRecord-Frameworks problemlos auf Daten aus verwandten Tabellen zugreifen und diese bearbeiten. Stellen Sie sich das Szenario vor, in dem Sie die fünf meistgehörten Songs von einem Modell namens „Song“ abrufen möchten. Sie haben ein separates Modell namens „Listen“, das eine Eins-zu-viele-Beziehung zwischen Liedern und Hörstücken herstellt.

Um das gewünschte Ergebnis zu erzielen, können Sie die Assoziationen „has_many“ und „gehört_to“ in Ihren Modellen verwenden. Ein benannter Bereich bietet eine bequeme Möglichkeit, komplexe Abfragen zu definieren und sie in Ihrer gesamten Anwendung wiederzuverwenden. So können Sie es implementieren:

class Song
  has_many :listens

  scope :top5,
    select("songs.id, OTHER_ATTRS_YOU_NEED, count(listens.id) AS listens_count").
    joins(:listens).
    group("songs.id").
    order("listens_count DESC").
    limit(5)
end
Nach dem Login kopieren

In diesem Code:

  • select gibt die abzurufenden Spalten an und fügt eine berechnete Listens_Count-Spalte hinzu.
  • Joins stellt die Beziehung zwischen Lied und Hören her.
  • Gruppe gruppiert die Ergebnisse nach Lied-ID, um die Anzahl der Hörvorgänge für jedes Lied zu zählen Lied.
  • order ordnet die Ergebnisse in absteigender Reihenfolge der Listen_Count an.
  • Limit beschränkt die Auswahl auf die 5 meistgehörten Lieder.

Jetzt können Sie verwenden Die Top5-Methode zum einfachen Abrufen der gewünschten Daten:

Song.top5 # top 5 most listened songs
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rufe ich mithilfe von ActiveRecord-Zuordnungen die fünf meistgehörten Songs ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage