Rails 3 ActiveRecord の聴取回数に基づいて上位の曲を取得
これまでに作成された上位 5 曲を取得する方法を探しています。一番よく聞きました。 Rails 3.1 の ActiveRecord は、このタスクを達成するための強力な方法を提供します。
まず、Listen モデルと関係がある Song モデルについて考えてみましょう。各 Listen は特定の Song に関連しますが、各 Song には多数の Listen (複数回聴かれたことを示します) を含めることができます。
Song モデル内で、上位 5 つをフェッチする self.top メソッドを定義できます。最もよく聞かれた曲。これは、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
このコードは、Song クラス内に top5 という名前の名前付きスコープを定義します。 SQL を利用して目的のクエリを構築します。
Song.top5 を呼び出すと、上位 5 曲の配列を取得できます。聴かれた回数などの各曲の属性。これにより、アプリケーション内で最も人気のある曲を簡単に識別できます。
以上がRails 3 ActiveRecord を使用して最もよく聞かれた曲のトップ 5 を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。