Ruby on rails 使用Rolify仅基于实例创建角色
是否有一个创建角色的选项,我们只能将其分配给实例,而不能分配给整个类?我想定义一个作用域为资源实例的角色:Ruby on rails 使用Rolify仅基于实例创建角色,ruby-on-rails,rolify,Ruby On Rails,Rolify,是否有一个创建角色的选项,我们只能将其分配给实例,而不能分配给整个类?我想定义一个作用域为资源实例的角色: user = User.find(2) user.add_role :moderator, Forum.first 但我希望避免定义作用域为整个类的角色: user = User.find(3) user.add_role :moderator, Forum 有什么办法禁止第二种选择吗?我不知道Rolify为此提供了什么,但您可以始终使用普通的好ruby: User.prepend(M
user = User.find(2)
user.add_role :moderator, Forum.first
但我希望避免定义作用域为整个类的角色:
user = User.find(3)
user.add_role :moderator, Forum
有什么办法禁止第二种选择吗?我不知道
Rolify
为此提供了什么,但您可以始终使用普通的好ruby:
User.prepend(Module.new do
def add_role(role, target)
raise "Not allowed" if target.is_a?(Class)
super(role, target)
end
end)
我不知道
Rolify
为此提供了什么,但您可以始终使用普通的好ruby:
User.prepend(Module.new do
def add_role(role, target)
raise "Not allowed" if target.is_a?(Class)
super(role, target)
end
end)
工作起来很有魅力。我在lib目录中创建了模块。用户类在该模块前面加上前缀。角色及其限制是在配置文件中定义的。工作起来就像一个符咒。我在lib目录中创建了模块。用户类在该模块前面加上前缀。角色及其限制在配置文件中定义。