仅基于Rolify实例创建角色

时间:2018-06-07 06:58:53

标签: ruby-on-rails rolify

是否有创建角色的选项,我们只能分配给实例但不能分配给整个类?我想定义一个作用于资源实例的角色:

user = User.find(2)
user.add_role :moderator, Forum.first

但我想避免定义作用于整个班级的角色:

user = User.find(3)
user.add_role :moderator, Forum

有没有办法禁止第二种选择?

1 个答案:

答案 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)