【问题标题】:Create role based only on instance with Rolify使用 Rolify 仅基于实例创建角色
【发布时间】:2018-06-07 06:58:52
【问题描述】:

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

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

但我想避免将角色定义为整个班级:

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

有什么办法可以禁止二选一吗?

【问题讨论】:

    标签: ruby-on-rails rolify


    【解决方案1】:

    我不知道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)
    

    【讨论】:

    • 像魅力一样工作。我在 lib 目录中创建了模块。用户类前置此模块。角色及其限制在配置文件中定义。
    猜你喜欢
    • 2017-04-24
    • 2018-07-07
    • 1970-01-01
    • 2021-03-09
    • 2012-07-03
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    相关资源
    最近更新 更多