3

私の質問は、 Rails 3 ActiveRecord: Order by count on associationと非常によく似ています。

同じシナリオを考えると、モデルは

Song has many :listens

曲を聴いた回数でグループ分けしたいと思います。私の目標は、曲の分布とリッスン カウントを確認することです。何かのようなもの...

song_listen_distribution = {0 => 24, 1 => 43, 2=>11, ... MAX_LISTENS => 1}

song_listen_distribution[4]4 回聞いた曲の数を返します。

上記のリンクされた質問に対する受け入れられた回答は私を非常に近づけますが、「songs.listens_count」でグループ化することはできません

    Song.select("songs.id, OTHER_ATTRS_YOU_NEED, count(listens.id) AS listens_count").
    joins(:listens).
    group("songs.listens_count").
    order("listens_count DESC")
4

1 に答える 1