是否有创建角色的选项,我们只能分配给实例但不能分配给整个类?我想定义一个作用于资源实例的角色:
user = User.find(2)
user.add_role :moderator, Forum.first
但我想避免定义作用于整个班级的角色:
user = User.find(3)
user.add_role :moderator, Forum
有没有办法禁止第二种选择?
答案 0 :(得分:4)
我不知道Rolify
为此提供了什么,但你总是可以使用普通的旧红宝石Module#prepend
:
User.prepend(Module.new do
def add_role(role, target)
raise "Not allowed" if target.is_a?(Class)
super(role, target)
end
end)