使用CanCanCan多个设计用户或一个用户和权限?

时间:2014-11-25 13:53:17

标签: ruby-on-rails devise cancan cancancan

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

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

由于

2 个答案:

答案 0 :(得分:1)

仅使用一个用户,并使用role_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,则可以使用该列的枚举。

答案 1 :(得分:1)

我会说具有权限的单一模型。我在这里详细回答了如何解决这个问题:

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