Post
属于User
s。 User
拥有并属于许多角色(即,我们在此处理的表格为posts
,users
,roles
和roles_users
)< / p>
如何选择具有“编辑”角色的用户撰写的所有帖子?
即,我想要数据库驱动的
版本Post.all.select{|p| p.user.roles.map(&:name).include?("Editor")}}
答案 0 :(得分:2)
您可以尝试这样的事情:
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :posts, :through => :users
end
然后你可以这样做:
Role.find(editor_id).posts
答案 1 :(得分:2)
Post.all(:joins => {:user => :roles}, :conditions => ["roles.name = ?", "editor"])