2013-09-25 31 views
0

我想在我的視圖中創建一個領導者表。我顯示所有用戶的列表,每個用戶可以輸入1個或多個事件(用戶擁有並通過=>結果屬於多個事件),每個結果是:在相對事件中贏得的分數。如何設置連接表中的值的總和

我無法編寫控制器。我想要一些效果如下

@standings = User.find(:all, :order => 'User.results.points.sum'); 

因此,按照每個結果中點的總和的順序列出所有用戶。

(我知道上面的代碼是一個很長的路要走 - 它只是我試圖說明我後我)

會很感激,如果有人可以給我做的最好的辦法了一些建議這個。

回答

2

類似以下內容:

User.joins(:results).group("users.id").order("SUM(results.points)") 

通過results.points的總和加入用戶的成績表,組用戶,然後訂單。

然後你就可以像這樣,如果你想點的最高數目的第一調整順序:

User.joins(:results).group("users.id").order("SUM(results.points) DESC") 
+0

太好了! - 效果很好 - 非常感謝 –

+0

沒問題,我最近一直在努力克服這個問題... –

相關問題