Maison >base de données >tutoriel mysql >Comment récupérer les 5 chansons les plus écoutées à l'aide de Rails 3 ActiveRecord ?

Comment récupérer les 5 chansons les plus écoutées à l'aide de Rails 3 ActiveRecord ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 17:55:10466parcourir

How to Retrieve the Top 5 Most-Listened-To Songs Using Rails 3 ActiveRecord?

Récupérer les meilleures chansons en fonction du nombre d'écoutes dans Rails 3 ActiveRecord

Vous recherchez une méthode pour récupérer les 5 meilleures chansons qui ont été le plus écouté. ActiveRecord, dans Rails 3.1, fournit un moyen puissant d'accomplir cette tâche.

Pour commencer, considérons le modèle Song, qui a une relation avec le modèle Listen. Chaque écoute se rapporte à une chanson spécifique, tandis que chaque chanson peut avoir de nombreuses écoutes (indiquant qu'elle a été écoutée plusieurs fois).

Dans le modèle de chanson, vous pouvez définir une méthode self.top pour récupérer le top 5. chansons les plus écoutées. Ceci peut être réalisé en utilisant l'association has_many :

class Song
  has_many :listens

  def self.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
end

Ce code définit une portée nommée nommée top5 dans la classe Song. Il exploite SQL pour construire la requête souhaitée :

  1. select : sélectionne des colonnes spécifiques de la table des chansons, y compris une colonne supplémentaire nommée listenings_count qui compte le nombre d'écoutes pour chaque chanson.
  2. joins : établit une jointure entre les tables de chansons et d'écoutes à l'aide de l'association has_many.
  3. group : regroupe les résultats par songs.id pour garantir le décompte est exécuté pour chaque chanson unique.
  4. order : classe les résultats par ordre décroissant en fonction de la colonne listenings_count.
  5. limite : limite les résultats aux 5 meilleures chansons avec le nombre d'écoutes le plus élevé.

En appelant Song.top5, vous pouvez récupérer un tableau des 5 meilleures chansons, avec les attributs de chaque chanson, y compris le nombre de fois où elle a été jouée. a été écouté. Cela permet d'identifier facilement les chansons les plus populaires au sein de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn