私のアプリはhas_many
UserResponse
モデルのQuestion
モデルです。Rails 3:関連を熱心に読み込み、includes()で条件を適用する方法
具体的なUser
が回答した最後の5つの質問は、user_id
フィールドでフィルタリングされたUserResponse
というオブジェクトで回答したいと考えています。
は、ここで私は、現在持っているものです。
Question.group("questions.id").
joins("inner join user_responses r on r.question_id = questions.id").
where("r.user_id = #{user_id}").
order("questions.id asc").limit(5)
このクエリは、私が欲しいものを私に戻っていますが、私は、配列のうち、Question
を取得し、question.user_responses
を行う際の問題は、結果がのための応答の全てです上記のjoin/where節でフィルタリングすべきものだけではなく、その質問。
私はこれを行うにしようとしました:
Question.includes(:user_responses).group("questions.id").
joins("inner join user_responses r on r.question_id = questions.id").
where("r.user_id = #{user_id}").
order("questions.id asc").limit(5)
は、各応答熱心な負荷をだろう、それを考えて...しかし、そのように機能するように表示されません。
どこが間違っていますか?
もし私が熱心に読み込まなければならないのは、配列をとり、その上のto_jsonを呼び出して、私のモバイルアプリケーション用のWebサービスからjsonを返す必要があるからです。 。
ここでグループに参加しようとしていますか? – rwilliams