这是我能力课上的一段代码
if user.admin?
can :manage, :all
can :destroy, :all if != current_user
我相信你可以弄清楚我在这里想要做什么。我意识到破坏包含在管理中,我在那里重复自己。有什么建议么?
编辑Yjerem 的答案是正确的,我只是将其更改为适合我的代码。这就是它的样子。
if user.admin?
can :manage, :all
cannot :destroy, User, :id => user.id
正如 Yjerem 所说,在 cancan 中,能力优先级表明定义在较低位置的能力胜过它们之上的能力,因此管理员可以使用上面的代码管理除其下定义的能力之外的所有能力。