1

我有这些模型:

class Post
  belongs_to :user
end

class User
  has_many :posts
end

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

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

我希望它像 一样简单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::Error: 错误:缺少表“用户”的 FROM 子句条目。

找不到名为“用户”的Post.joins(:users)throws 关联的任何内容。

4

2 回答 2

2

阅读有关使用 ActiveRecord 方法.joins生成的信息SQL joins

User.joins(:posts).where("users.role = ? AND posts.title = ?", 'guest', 'some title')
于 2013-04-09T18:37:36.540 回答
1

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

于 2013-04-09T18:37:20.547 回答