Maison > base de données > tutoriel mysql > Comment puis-je récupérer efficacement les 5 chansons les plus écoutées en utilisant ActiveRecord dans Ruby on Rails ?

Comment puis-je récupérer efficacement les 5 chansons les plus écoutées en utilisant ActiveRecord dans Ruby on Rails ?

Barbara Streisand
Libérer: 2024-11-27 01:42:09
original
373 Les gens l'ont consulté

How Can I Efficiently Retrieve the Top 5 Most Listened-To Songs Using ActiveRecord in Ruby on Rails?

Récupération efficace des chansons les plus écoutées à l'aide d'ActiveRecord

Dans Ruby on Rails, récupérer les enregistrements les plus populaires en fonction du nombre de modèles associés est un tâche commune. Dans ce cas, nous avons un modèle Song et un modèle Listen où chaque Listen appartient à un Song, et chaque Song peut avoir plusieurs Listens. Pour déterminer les cinq chansons les plus écoutées, nous devons accéder aux informations d'association de manière efficace.

Utilisation des étendues nommées

Les étendues nommées d'ActiveRecord fournissent un puissant moyen d’encapsuler des requêtes complexes. Ils nous permettent de créer des critères de requête réutilisables qui peuvent être facilement invoqués. Pour le scénario donné, nous pouvons définir une portée nommée appelée :top5 dans le modèle Song :

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)

# Retrieve the top 5 most listened-to songs
songs = Song.top5
Copier après la connexion

Répartition des requêtes

  • select précise les champs à inclure dans le result.
  • joins établit la condition de jointure entre les modèles Song et Listen.
  • group regroupe les résultats par ID de chanson pour compter le nombre de Écoute pour chaque chanson.
  • order trie les résultats par ordre décroissant en fonction de l'écoute count.
  • limit restreint le résultat aux 5 meilleures chansons.

En invoquant la portée nommée :top5, nous pouvons obtenir une collection des cinq meilleures chansons avec le nombre d'écoutes associé, offrant un moyen concis et efficace d'extraire les données requises.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal