左加入 rails 4

Left join with rails 4

我有这些型号:

部分有多个问题

问题有一个答案

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

所以我想请求指定的用户,所有带有链接问题和链接答案的部分,即使没有答案

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

将return只有有问题有答案的部分。

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

这行不通:

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

感谢您的帮助

你必须自己写左连接。

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