0

私は自分のモデルでスコープを使用しています

     scope :by_average_rating_than_no_of_rating, :order => 'average_rating DESC,number_of_ratings DESC,editors_pick DESC'

しかし、私は以下のような結果を達成したい

     scope :by_average_rating_than_no_of_rating, :order => 'average_rating DESC,count(number_of_ratings) DESC,editors_pick DESC'

順番にモデル属性にカウントを適用するにはどうすればよいですか?

何か助けはありますか?

ありがとう

4

1 に答える 1

1

評価の数を数える select ステートメントがありません。

これは、取得方法の例です。

class Song
  has_many :listens
  scope :top5,
    select("songs.id, OTHER_ATTRS_YOU_NEED, count(listens.id) AS listens_count").
    joins(:listens).
    order("listens_count DESC").
    limit(5)

Song.top5 # top 5 most listened songs
于 2013-04-03T09:39:01.030 に答える