我遇到了一個奇怪的問題,使用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