Ruby on rails 多个左连接到rails 4
我正在尝试使用ActiveRecord请求一些数据,但没有成功 我有这些模型: 部分有多个问题 问题只有一个答案 一个答案属于一个用户和一个问题 所以我想请求一个指定的用户,所有部分都有链接的问题和链接的答案 也许像Ruby on rails 多个左连接到rails 4,ruby-on-rails,activerecord,left-join,inner-join,Ruby On Rails,Activerecord,Left Join,Inner Join,我正在尝试使用ActiveRecord请求一些数据,但没有成功 我有这些模型: 部分有多个问题 问题只有一个答案 一个答案属于一个用户和一个问题 所以我想请求一个指定的用户,所有部分都有链接的问题和链接的答案 也许像 Section.all.joins(:questions).joins(:answer).where(answer.user_id = USER_ID) 谢谢你的帮助 您可以执行以下操作: Section.joins(questions: :answer).where(answe
Section.all.joins(:questions).joins(:answer).where(answer.user_id = USER_ID)
谢谢你的帮助 您可以执行以下操作:
Section.joins(questions: :answer).where(answers: { user_id: USER_ID })
需要知道的一些事情:
- 在
/联接
方法中,始终使用与关系完全相同的名称包含
- 在
子句中,始终使用关系的复数名称(实际上,表的名称,默认情况下是复数形式的模型名称,但也可以手动设置)where
# Consider these relations:
User has_many :posts
Post belongs_to :user
# Usage of joins/includes & where:
User.includes(:posts).where(posts: { name: 'BlogPost #1' })
#^ ^
Post.joins(:user).where(users: { name: 'Little Boby Table' })
#^^ ^
类似问题:
{:questions=>:answer}
和{questions::answer}
完全相同(在两个示例中,键是符号,值是符号)。(新语法已集成到Ruby 1.9.x和更新版本中。它似乎只返回第一部分。是否可以使用左连接作为应答连接?因为,如果没有应答,请求将不返回任何内容