【发布时间】:2017-04-05 01:46:33
【问题描述】:
使用cancancan最基本的实现,感觉自己快疯了。
这是我的用户模型中的内容
ROLES = %i[admin regular reporter]
# Roles logic to covert string above to/from integers
def roles=(roles)
roles = [*roles].map { |r| r.to_sym }
self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.inject(0, :+)
end
def roles
ROLES.reject do |r|
((roles_mask.to_i || 0) & 2**ROLES.index(r)).zero?
end
end
def has_role?(role)
roles.include?(role)
end
具有 1 的用户显示角色 :admin
2 的用户正在显示角色 :regular
但是 3 的用户显示角色 [:admin, :regular]
想不通以挽救我的生命
【问题讨论】:
标签: ruby-on-rails ruby devise cancancan