Rails数据库查询与两个表的条​​件?

时间:2013-04-09 18:34:20

标签: ruby-on-rails activerecord

我有这些模特:

class Post
  belongs_to :user
end

class User
  has_many :posts
end

我想获得任何访客用户标题为“Some Title”的帖子(即user.role =='guest')。

标题在访客用户中是唯一的,但某些非访客用户可能有一个具有该标题的帖子。我正在尝试使用Rails guideApi,但我似乎无法将正确的语法放在一起。

我希望它像User.where(:role => 'guest').posts.find_by_title('some title')一样简单,但是为#ActiveRecord :: Relation:0x4e6d380 抛出未定义的方法`posts'。

Post.find_by_title('some title', :conditions => {:users => {:role => 'guest'}, :joins => :users}抛出 PG ::错误:错误:表“users”缺少FROM子句条目。

找不到Post.joins(:users)投掷的任何名为'用户'的关联。

2 个答案:

答案 0 :(得分:2)

了解使用ActiveRecord方法.joins,生成SQL joins

User.joins(:posts).where("users.role = ? AND posts.title = ?", 'guest', 'some title')

答案 1 :(得分:1)

在连接上尝试Post.joins(:user)(不是:用户)。