Моя проблема в том, что я использую этот запрос:Избегайте eager_loading при доступе к соотношению
@questions = Question.includes(:answer).joins('LEFT OUTER JOIN answers ON answers.question_id = questions.id AND answers.user_id= 1').select('answers.*, questions.*')
И тогда он производит эти 2 MySQL запросов. Проблема заключается в том, что второй запрос запрашивает ответы для каждого пользователя.
1.Question Load (2.7ms) SELECT answers.*, questions.* FROM "questions" LEFT OUTER JOIN answers ON answers.question_id = questions.id AND answers.user_id= 1
2.Answer Load (0.8ms) SELECT "answers".* FROM "answers" WHERE "answers"."question_id" IN (2, 3, 4, 5, 6, 7, 8, 1)
Что вы на самом деле хотите сделать? –
Получите ответы на все вопросы и их отношение «ответ» Но мне нужен только ответ от конкретного пользователя. – bokzor
@questions = @ user.answers.includes (: questions) .collect (&: questions) .flatten –