我有这些模特:
class Post
belongs_to :user
end
class User
has_many :posts
end
我想获得任何访客用户标题为“Some Title”的帖子(即user.role =='guest')。
标题在访客用户中是唯一的,但某些非访客用户可能有一个具有该标题的帖子。我正在尝试使用Rails guide和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 ::错误:错误:表“users”缺少FROM子句条目。
找不到Post.joins(:users)
投掷的任何名为'用户'的关联。
答案 0 :(得分:2)
了解使用ActiveRecord方法.joins
,生成SQL joins
。
User.joins(:posts).where("users.role = ? AND posts.title = ?", 'guest', 'some title')
答案 1 :(得分:1)
在连接上尝试Post.joins(:user)(不是:用户)。