2013-10-10 73 views
0

我試圖計算出多個問題的總回覆,但比這更復雜一點。我的Notifications屬於Questions然後Responses屬於Questions跨多個關聯求和?

通知是鏈的開始。例如,我有2個notification記錄:

[ 
    #<Notification id: 1, question_id: 58, email: "[email protected]", frequency: "daily">, 
    #<Notification id: 2, question_id: 25, email: "[email protected]", frequency: "daily"`> 
] 

我想找到是responses這些通知的總數。再次,notificationsresponses屬於questions

這將會基本上是相同的相加notification.question.responses.count每個那些。試圖找出一個更直接的方法來解決這個問題。

回答

0

您檢查生成的SQL是什麼notification.question.responses.count? ActiveRecord應該爲此提出正確的查詢。

如果您關注的是使這一呼籲在列表中的所有通知,你想要得到的計數,當你第一次拉下通知列表,穿上響應一個counter_cache屬於質疑關聯。然後,當您請求通知列表時,您可以:include => [:question]

+0

這會爲每個單獨的通知工作...我要求做多個通知的數量。就好像我在我的例子中通過了兩個通知,並獲得了兩者的總數。 – Shpigford

0

我認爲這會爲你工作(未測試)

Notification.joins("JOIN responses ON responses.question_id = notifications.question_id").group(:question_id).count