【问题标题】:Rails: how to create roles dynamically to RolifyRails:如何动态创建角色到 Rolify
【发布时间】:2017-04-24 15:19:58
【问题描述】:

我按照 rolify 的教程学习了一些基本用法。 https://github.com/RolifyCommunity/rolify/wiki/Devise---CanCanCan---rolify-Tutorial

目前,我创建角色的唯一方法是控制台中的user.add_role "admin"。 我想要的是通过添加资源的操作来创建角色,然后管理员用户能够为用户分配角色。 我不知道如何实现这一点,我做了一个草稿来表明我的目的。 谁能给我一些想法来做这个?

【问题讨论】:

    标签: ruby-on-rails rolify


    【解决方案1】:

    创建模型:

    class Role < ActiveRecord::Base
      has_and_belongs_to_many :users, :join_table => :users_roles
      belongs_to :resource, :polymorphic => true
    
      validates :resource_type,
                :inclusion => { :in => Rolify.resource_types },
                :allow_nil => true 
      scopify
    end
    

    使用该模型作为常规形式。这样您就可以创建新角色。

    如果您想通过用户模型添加角色,例如从下拉选择,抓取 Roles.all 并将其传递给您的选择。

    【讨论】:

    • 为什么你允许resource_type为nil?如果您的角色未链接到资源,则它应该是无效的。(?)
    • 该模型代码实际上是 rolify gem 中的代码,因此 rolify 内部可能需要 allow_nil。你实际上甚至不能定义这个模型。但是你应该这样做只是为了更好地控制它,知道“它在那里”,以及以后你可能需要在角色上实现的逻辑,所以你会知道在哪里添加它
    猜你喜欢
    • 2012-07-03
    • 2021-03-09
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多