2011-03-10 83 views
0

我有一個多對多:通過關係。 用戶 - >會員< - 團體試圖返回最大數量的組排序模型

用戶模型包含:country列。

現在我想找出同一國家有多少人是在一個特定的羣體和僅返回該國與用戶的最大金額

我有這個atm在組模型;

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

不工作,我看到它返回一個OrderedHash,在那裏我現在正服下的第一個關鍵,這是毫無意義的。只是告訴你我猜我迷路了。

我希望能夠做@ group.country並獲得該組中最大的國家。

任何幫助我如何去做這件事?

+0

哪兒國家從何而來?你的意思是用戶屬於國家嗎? – DGM 2011-03-10 03:49:59

+0

對不起,我也有一個模型國家,我只有世界上所有的國家。它has_many用戶。用戶屬於國家/地區 – Sebastian 2011-03-10 04:22:55

回答

0

如果您使用ActiveRecord的:counter_cache功能,這將會容易得多,因爲這些數字將表示在您可以索引和排序的列中。另一種方法是編寫一些自定義SQL以獲得正確的結果。

另一種方法是用一組纏鬥周圍像您有:

Country.find(users.group(:country_id).count.first.first)