左连接导轨4

时间:2015-04-23 17:16:00

标签: ruby-on-rails left-join inner-join rails-activerecord

我有这些模特:

章节有多个问题

问题有一个答案

一个答案属于一个用户和一个问题

所以我想要一个指定的用户,所有带有链接问题的部分和链接的答案,如果没有答案

Section.joins(questions: :answer).where(answers: { user_id: USER_ID })

只返回有回答问题的部分。

Section.joins(questions: :answer).where(answers: { user_id: USER_ID })

这不起作用:

Section.joins(:questions).includes(questions: :answer).where(answers: { user_id: USER_ID })

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您必须自己编写左连接。

Section.joins("left join questions on questions.section_id = sections.id")
  .joins("left join answers on answers.question_id = questions.id")