我正在尝试计算多个问题的总回答,但它比这更复杂。
我Notifications
属于Questions
,然后Responses
属于Questions
。
通知是链条的开始。例如,我有2 notification
条记录:
[
#<Notification id: 1, question_id: 58, email: "bob@example.com", frequency: "daily">,
#<Notification id: 2, question_id: 25, email: "bob@example.com", frequency: "daily"`>
]
我想要找的是这些通知的responses
总数。同样,notifications
和responses
属于questions
。
它基本上与为每个人加notification.question.responses.count
相同。试着想出一个更直接的方法来解决这个问题。
答案 0 :(得分:0)
您是否检查了notification.question.responses.count
生成的SQL的内容? ActiveRecord应该为此提出正确的查询。
如果您关注的是对列表中的每个通知进行此调用,并且您希望在首次下拉通知列表时获取计数,请在Response属于问题关联上放置counter_cache。然后,当您请求通知列表时,您可以:include => [:question]
。
答案 1 :(得分:0)
我认为这对您有用(未经测试)
Notification.joins("JOIN responses ON responses.question_id = notifications.question_id").group(:question_id).count