如何在rails活动记录查询中使用连接时获取第二个表的结果

时间:2016-04-07 06:38:58

标签: mysql ruby-on-rails ruby ruby-on-rails-4

我的ActiveRecord查询是Note.joins(:user).where(category: "Actions") 并将其生成为SELECT notes.* FROM notes INNER JOIN users ON users.id = notes.user_id WHERE notes.category = 'Actions'

的sql

我想从用户表中获取数据而不是从notes表中获取数据意味着我正在尝试生成sql为SELECT users.* FROM users INNER JOIN notes ON users.id = notes.user_id WHERE notes.category = 'Actions';

它的Active Record查询是什么。

如果我正在执行User.joins(:notes).where(category: "Actions"),那么它会抛出错误Mysql2::Error: Unknown column 'users.category',因为类别是notes表的属性而不是users表的属性。

1 个答案:

答案 0 :(得分:5)

试试这个 -

User.joins(:notes).where(notes: {category: "Actions"})