最近开始一个新项目,当然上 Rails5.1。权限管理使用常规武器 cancancan
权限配置问题如下,非常简单
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.permission.to_sym == :manager
can :manager, :all
else
can :read, :all
end
end
end
但是遇到一个问题,在编辑任何的资源的时候都提示没有权限,我赶紧去看看 2.0 版本到底更新了啥,wiki 反复核对了好几遍!! 没有找到,怀疑人生了。去喝杯水回来,问题搞定,非常简单。不知道你们看出来了没有,正确的配置是这样的
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.permission.to_sym == :manager
can :manage, :all
else
can :read, :all
end
end
end
特写一下
can :manage, :all # manage => not manager!!!
自己还是缺乏啊,浪费了两个小时,哎。
说说那些让你爱上的坑吧,我一定吸取教训的。比如测试啊,debug 的能力什么的