2011-05-25 51 views
0


對不起noob問題(我猜...)。Rails 3 - 如何按重複次數排序陣列

說我有post_commenters與USER_ID & COMMENT_ID
EG的數組:
1 - 27
2 - 31
1 - 54
3 - 87
1 - 12
2 - 54

如果我想根據評論的數量對用戶進行排名,那麼我必須計算他們評論的次數,然後評論.uniq。

我該怎麼做?

我知道如何uniq的是:

unique_user_list = array.uniq {|s| s.user_id} 

我知道怎麼算的陣列內的重複:

array.count { |u| u.name == unique_user_list.name } # in a loop of user 

但我在一個損失數字混合和排序重複...
謝謝!

編輯

好,感謝floatless,現在我的東西更多實實在在的 - 從四方API一個真實的例子,利用昆比寶石:

- current_user.all_checkins.group_by(&:venue["id"]).first(50).each do |c| 
    = c.venue.id 

唯一的問題,它不....組。
有什麼想法?

回答

1

我認爲你應該使用你的SQL查詢中的GROUP BY子句來做到這一點,然後只是COUNT分組評論。

+0

我的例子是一個虛擬的例子 - 我從一個API獲取數組,不認爲group_by在這裏工作... – Laurent 2011-05-25 19:37:29

+0

我的不好,當然可以。我的語法似乎是錯誤的... – Laurent 2011-05-25 19:39:16

+0

更新我的問題,編輯底部 - thx! – Laurent 2011-05-25 19:54:20