我想从User模型中获取一个说明版主的列表,在这种情况下可以使用
u = User.new(:name => "n", :surname => "s", :email => "a@m.c", :password => "x")
u.add_role(:moderator)
u.save!
但如果我像这样为用户模型分配资源,则不会列出具有角色主持人的用户
u = User.new(:name => "m", :surname => "b", :email => "a@m.c", :password => "x")
u.add_role(:moderator, Post.first)
u.save!
更新
post.rb
class Post < ActiveRecord::Base
attr_accessible :user_id, :content
belongs_to :user
end
user.rb
class User < ActiveRecord::Base
rolify
end
答案 0 :(得分:2)
如readme所述,您应该将resourcify
添加到您的帖子模型和其他所有要应用角色的模型上。
因此,您的Post模型应如下所示:
<强> Post.rb 强>
class Post < ActiveRecord::Base
resourcify
attr_accessible :user_id, :content
belongs_to :user
end
*编辑*
您可以使用User.with_all_roles({:name => :admin})
我创建了一个vanilla项目,使用具有相同User和Post模型的rolify。更改帖子模型并添加resourcify
,更改用户模型并添加has_many :posts
user = User.create(...)
user.add_role :admin
post = user.posts.create(...)
user2 = User.create(...)
user2.add_role(:moderator, post)
似乎正在使用这些: