1

3つのモデルがある場合:

モデルSection

モデルUser

has_many :votes

モデルVote

belongs_to :user

およびモデル内Section

has_many :users
has_many :votes, :through => :users

ARアソシエーションを使用して投票数順にセクションリストを取得するにはどうすればよいですか?

4

2 に答える 2

2

これを行う最も合理的な方法は、次のように結果を並べ替えるために生のSQLとして記述されたサブクエリを使用することです...

Section.order(
  '(select count(1) from votes inner join users on votes.user_id=users.id where users.section_id=sections.id)'
)
于 2012-07-24T04:06:50.913 に答える
0
Section.joins(users: :votes).group(:id).order('COUNT(*)')
于 2016-02-11T07:16:05.827 に答える