ホームページ > データベース > mysql チュートリアル > Rails 3 ActiveRecord を使用して最もよく聞かれた曲のトップ 5 を取得する方法

Rails 3 ActiveRecord を使用して最もよく聞かれた曲のトップ 5 を取得する方法

Patricia Arquette
リリース: 2024-12-03 17:55:10
オリジナル
466 人が閲覧しました

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

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 を利用して目的のクエリを構築します。

  1. select: 楽曲テーブルから特定の列を選択します。これには、各曲の試聴回数をカウントする listens_count という名前の追加列が含まれます。
  2. joins: has_many 関連付けを使用して、曲と listen テーブル間の結合を確立します。
  3. group: 結果をグループ化します。 songs.id を使用して、一意の曲ごとにカウントが実行されるようにします。
  4. order: listens_count 列に基づいて結果を降順に並べます。
  5. limit: 結果を上位 5 曲に制限します

Song.top5 を呼び出すと、上位 5 曲の配列を取得できます。聴かれた回数などの各曲の属性。これにより、アプリケーション内で最も人気のある曲を簡単に識別できます。

以上がRails 3 ActiveRecord を使用して最もよく聞かれた曲のトップ 5 を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート