我遇到了一个奇怪的问题,使用Rolify(点击教程我跟着)Rails:can
方法似乎不起作用,因此呈现用户权限不可用。以下是我的ability.rb
文件和控制台输出,其中显示了问题。Rolify异常返回false
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :admin
can :manage, :all
else
can :read, :all
end
end
end
控制台测试($ rails console
)
user = User.find(2)
user.add_role "admin"
user.has_role? :admin
=> **true**
ability = Ability.new(user)
ability.can? :manage, :all
=> **false**
ability.can? :read, :all
=> **false**
我还检查在数据库中,所有的关系的设置是否正确。我正在运行rails 3.2.13。
当您测试'ability.can?'时,您是否尝试过传递实际模型或模型类而不是':all'? – PinnyM 2013-04-08 22:00:53