ホームページ >データベース >mysql チュートリアル >Ruby on Rails で ActiveRecord を使用して、最もよく聞かれた曲のトップ 5 を効率的に取得するにはどうすればよいですか?
ActiveRecord を使用して最も人気のある曲を効率的に取得する
Ruby on Rails では、関連付けられたモデル数に基づいて最も人気のあるレコードを取得することは、共通のタスク。この場合、Song モデルと Listen モデルがあり、各 Listen は Song に属し、各 Song は複数の Listen を持つことができます。最もよく聞かれた上位 5 曲を決定するには、効率的な方法で関連付け情報にアクセスする必要があります。
名前付きスコープの使用
ActiveRecord の名前付きスコープは、強力な機能を提供します。複雑なクエリをカプセル化する方法。これらにより、簡単に呼び出すことができる再利用可能なクエリ条件を作成できます。特定のシナリオでは、Song モデル内で :top5 という名前付きスコープを定義できます:
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
Query Breakdown
:top5 という名前付きスコープを呼び出すことで、上位 5 曲のコレクションと関連する視聴回数を取得できるため、必要な曲を抽出するための簡潔かつ効率的な方法が提供されます。データ。
以上がRuby on Rails で ActiveRecord を使用して、最もよく聞かれた曲のトップ 5 を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。