0
内の他の属性

我々はUserモデルテーブルを持っているにスコープ:選択したレコードは、Railsの

group_id|posts|... 
1  |5 |... 
1  |20 |... 
2  |7 |... 
1  |15 |... 
3  |10 |... 
3  |12 |... 

そして、私たちは私がGroupを選択したいと思いますhas_many :users

Groupモデルを、持っていますUserが最も高いポストを有し、範囲はgroup_idである。後で私はUserGroupに基づいてコレクションをフィルタリングWhereChainの両方を構築していますので、

それは、一つだけUser JOINの中に持っていることが重要です。

おかげ

+0

'User.order(記事:DESC).first.group'(1最大' posts'値シナリオ)? – potashin

+0

1つだけでなく、 'Group'のコレクションが必要です。 –

答えて

2
posts = User.group(:group_id).maximum(:posts) 
Group.joins(:users).where(users: {posts: posts.values}) 
+3

この回答はシステムによって低品質であると表示されました。他の回答が表示されていますので、高品質の回答でより多くの文脈と説明が得られることがわかります。なぜ、どのように動作するのかについての説明を追加すると、それが大幅に改善されます。 – rrauenza

+0

これはかなり良いようです。 –

+0

'posts 'に2人の異なるユーザーの2つの同じ値がある場合、両方の値が見つかるでしょう。 –

関連する問題