我在使用带有 Rails 的Rolify(点击查看我正在关注的教程)时遇到了一个奇怪的问题:该can
方法似乎不起作用,因此使用户权限无法使用。下面是我的ability.rb
文件和控制台输出,其中演示了问题。
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。