2013-07-10 38 views
1

初學者問題:導軌模型關係 - 尋找最簡單的代碼

活動可以有多個參與者。每項活動都有一個日期,但您可以在同一天進行不同的活動。連接表使參與者和活動之間的鏈接成爲可能。

我正在尋找列出當天所有參與者的最簡單方法。此外,我正在嘗試做一個簡單的「計數」,以瞭解在一次約會中有多少參與者。

Activity.last.participants.count 

給我我的參與者的數量爲一個單一的活動

Activity.where(avtivity_date: Date.today) 

給我一個數組與天的所有活動。所以我必須遍歷他們每個人來統計或列出參與者並作出總結。

我在尋找類似:

Activity.where(avtivity_date: Date.today).participants.count 

要返回的參與者數量的一天。 這可能嗎?我應該繼續迭代並計數嗎?

我不確定我可以用來進行文檔搜索的關鍵字,任何提示/文檔鏈接將不勝感激!

謝謝!

回答

1

你需要連接兩個表

Activity.where(activity_date: Date.today).joins(:participants).count 
+0

非常感謝,它完美的作品! –

1

的可以使用selectgroup條款選擇在這一天所有的參與者。然後使用.count

Activity.where(activity_date: Date.today).select(:participant_id).group(:participant_id).count 
+0

效率不高,但也適用於'.uniq'而不是'.group(:participant_id)' –

+0

謝謝,這也是一個很好的建議。 –