我搜索了其他有这个问题的帖子,找不到解决我这个问题的帖子.我的爱尔兰很疯狂.我正在尝试更改数据库中的用户角色,但我甚至无法联系到我的用户!
irb(main):001:0> User.all
NameError: uninitialized constant Object::User
from (irb):1
from c:/Ruby192/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)
它工作正常,停止工作,很好,现在再次停止.我有一个用户模型和用户添加.我无法确定这个问题.让我知道您需要查看哪些代码.谢谢!
以下是我的能力课程中的代码片段
if user.admin?
can :manage, :all
can :destroy, :all if != current_user
Run Code Online (Sandbox Code Playgroud)
我相信你可以弄清楚我在这里要做什么.我意识到破坏包含在管理中,我在那里重复自己.有什么建议?
编辑 Yjerem的答案是正确的,我只是改变它以适合我的代码.这就是它的样子.
if user.admin?
can :manage, :all
cannot :destroy, User, :id => user.id
Run Code Online (Sandbox Code Playgroud)
正如Yjerem所说,在cancan中,能力优先级表明定义下限的能力优于其他人,因此管理员可以使用上面的代码管理除了在其下定义的所有内容.