2011-03-10 12 views
0

私は多対多を持っています。 ユーザー - >メンバーシップ< - グループグループソートモデルで最大のカウントを返そうとしています

ユーザーモデルには:国の列があります。

今、私は同じ国のどのように多くの人を知りたいユーザーの最大量持つ唯一の国、特定のグループやリターンです。

私はこのモデルをグループモデルで持っています。動作しません

def country 
Country.find(users.group(:country_id).count.keys.first) 
end 

、私はそれは私が今無意味での最初のキーを、取っているOrderedHashを返しました。ちょうどあなたが私が紛失していることを示しています。

@ group.countryを実行して、そのグループで最大の国を取得したいと考えています。

私はこれについてどのような手伝いをすればよいでしょうか?

+0

どこの国から来た:あな​​たが持っているよう

代替はグループで周りに口論しているのですか?あなたはユーザーが国に属していることを意味しますか? – DGM

+0

はい、申し訳ありませんが、私はモデルの国を持っています。私は世界のすべての国を持っています。それはhas_many Usersです。ユーザーはbelongs_to国になります – Sebastian

答えて

0

ActiveRecordの:counter_cache機能を使用すると、インデックスと並べ替えが可能な列に数値が表示されるので、これはずっと簡単です。代わりに、適切な結果を得るためにカスタムSQLを記述することもできます。

Country.find(users.group(:country_id).count.first.first) 
関連する問題