ruby-on-rails - 多个左连接与 rails 4

标签 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(answers: { user_id: USER_ID })

一些要知道的事情:

  • joins/includes 方法中,始终使用与关系完全相同的名称
  • 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' })
              #^^           ^

类似问题:

关于ruby-on-rails - 多个左连接与 rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29827936/

相关文章:

mysql - 挑战按 MAX 进行的 LEFT OUTER JOIN 查询分组

php - mysql两次离开加入同一个表

ruby-on-rails - 如何在 Ruby 中封装包含的模块方法?

ruby-on-rails - Fork 不是 heroku 命令

javascript - 在 Angular.js 中访问 9gag API

ruby-on-rails - 对于 Rails 中的某些情况,如何实现是/否而不是 boolean 值?

ruby-on-rails - 如何检查范围 rails 中是否存在参数

ruby-on-rails - 之后(:each) vs after(:all) in Rails rspec

ruby-on-rails - 如何发现 Rails 中的模型属性?

mysql - LEFT JOIN 查找不同表中两列的总和