0

複数の質問の合計回答数を集計しようとしていますが、それよりも少し複雑です。

私は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私が見つけたいのは、それらの通知の総数です。繰り返しますが、notificationsresponses属していquestionsます。

それは基本的にnotification.question.responses.countそれらのそれぞれを合計するのと同じです。それについてもっと直接的な方法を見つけようとしているだけです。

4

2 に答える 2

0

生成された SQL の目的を確認しましたnotification.question.responses.countか? ActiveRecord は、そのための適切なクエリを考え出す必要があります。

リスト内のすべての通知に対してこの呼び出しを行うことに関心があり、通知のリストを最初にプルダウンしたときにカウントを取得したい場合は、応答が質問の関連付けに属していることに counter_cache を配置します。次に:include => [:question]、通知のリストを要求するときにできます。

于 2013-10-10T18:26:05.537 に答える
0

私はこれがあなたのために働くと思います(テストされていません)

Notification.joins("JOIN responses ON responses.question_id = notifications.question_id").group(:question_id).count
于 2013-10-10T18:26:17.533 に答える