Ruby on rails 管理rails中的用户角色(不同的属性、权限等)
我正在寻找RubyonRails4.2中创建和管理具有不同属性和权限的用户角色的最佳方法 我不想为每个用户角色创建一个表,我有一些enum解决方案或一些gem,比如cancan或rolify,但我想知道提高性能、遵守协议以及编写强大代码和体系结构的最佳方法是什么 有人能帮我吗?不是Cancancan或Rolify或enum,而是Rolify+Cancancan或enum+Cancancan 授权gems,比如Cancancan或(我更喜欢)用于根据用户的角色管理用户可以做什么。所以角色和授权不是对立的,它们通常是相辅相成的 Rolify+Pundit是一个很好的解决方案,它可以让您的用户拥有多个角色 对于基于单个角色的授权,Enum更简单。它特别(但不仅仅)被角色层次分明的应用程序使用,比如会员、版主、管理员 要在5分钟内获得基于枚举的角色,请首先向用户添加角色列:Ruby on rails 管理rails中的用户角色(不同的属性、权限等),ruby-on-rails,devise,cancan,rolify,Ruby On Rails,Devise,Cancan,Rolify,我正在寻找RubyonRails4.2中创建和管理具有不同属性和权限的用户角色的最佳方法 我不想为每个用户角色创建一个表,我有一些enum解决方案或一些gem,比如cancan或rolify,但我想知道提高性能、遵守协议以及编写强大代码和体系结构的最佳方法是什么 有人能帮我吗?不是Cancancan或Rolify或enum,而是Rolify+Cancancan或enum+Cancancan 授权gems,比如Cancancan或(我更喜欢)用于根据用户的角色管理用户可以做什么。所以角色和授权不是
class AddRoleToUsers < ActiveRecord::Migration
def change
add_column :users, :role, :integer, default: 0 #The default role will be the one set at 0 in user.rb
end
end
class AddRoleToUsers
然后,在user.rb中定义角色
enum角色:{买方:0,卖方:1,管理员:2}
这将直接允许您执行类似于
current\U user.admin?
,而无需编写更多的代码,这非常方便和干净。cancan
是管理用户角色的最佳方式。请参阅此链接上的实现,您应该使用cancan gem(),为什么cancan gem优于rolify或enum?