【问题标题】:Multiple Devise users or one user and permissions with CanCanCan?多个设计用户或一个用户和 CanCanCan 的权限?
【发布时间】:2014-11-25 13:53:16
【问题描述】:

实现具有不同属性和行为的两类用户(客户、管理员)的首选方法是什么?

拥有由 Devise 创建的两种类型的用户,还是只有一种用户模型并通过 CanCanCan 设置权限?

谢谢

【问题讨论】:

  • 用户属于角色,角色拥有多个权限。

标签: ruby-on-rails devise cancan cancancan


【解决方案1】:

我会说具有权限的单一模型。我在这里对如何处理这个问题做出了详细的回应:

Setting up different User models and registration paths for Devise on Ruby on Rails

【讨论】:

    【解决方案2】:

    仅使用一个用户,并使用特定列(如role_id)为该用户分配一个角色。 然后你可以有不同的角色,每个角色都有不同的 id。

    admin = 1

    standard = 2

    然后您可以在用户中定义一个方法,例如:

    def admin?
      role_id == 1
    end
    

    在cancan中你可以这样使用它:

    def initialize(user) HERE PERMISSIONS FOR NON LOGGED USERS if user HERE PERMISSIONS FOR LOGGED USERS if user.admin? HERE PERMISSIONS ONLY FOR ADMIN end end end

    如果您使用的是 Rails >= 4.1,则可以为该列使用枚举。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2011-08-29
      • 2014-09-11
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多