0
Post
s属于User
s。 User
■找,属于多个角色(即我们这里处理的表是posts
,users
,roles
和roles_users
)基于多对多关系的筛选结果
如何我可以选择通过谁拥有“编辑”角色的用户编写的所有帖子?
也就是说,我要的
Post.all.select{|p| p.user.roles.map(&:name).include?("Editor")}}
Post
s属于User
s。 User
■找,属于多个角色(即我们这里处理的表是posts
,users
,roles
和roles_users
)基于多对多关系的筛选结果
如何我可以选择通过谁拥有“编辑”角色的用户编写的所有帖子?
也就是说,我要的
Post.all.select{|p| p.user.roles.map(&:name).include?("Editor")}}
Post.all(:joins => {:user => :roles}, :conditions => ["roles.name = ?", "editor"])
数据库驱动的版本,你可以尝试这样的事:
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :posts, :through => :users
end
然后,你可以做这样的事情:
Role.find(editor_id).posts
这是正确的,虽然'roles.name =>?'呃d be'roles.name =?' – 2010-08-05 00:56:47
好电话,更新了帖子。谢谢! – 2010-08-05 04:00:22