-1
我有一個基本的授權類在Rails應用程序,它看起來是這樣的:什麼是:管理,:所有在Ruby中做的事情?
class Ability
include CanCan::Ability
def initialize(user)
if user
can :access, :rails_admin # only allow admin users to access Rails Admin
can :dashboard
if user.admin?
can :manage, :all
else
can :manage, [Agreement, Attachment, Contact, Deadline, Event, Image, Photo, Project, Submission, Talk]
can :update, User, id: user.id
end
end
# Current user cannot delete his account
cannot :destroy, User, id: user.id
end
end
現在,我在嘗試用一個簡單的用戶訪問儀表板時,未授權的錯誤,但一旦我把can :manage, :all
一個簡單用戶的狀態它神祕地通過並看到儀表板。
什麼是:manage, :all
有超過:manage, [All_my_tables]
,爲什麼我的用戶不讓用這種方式?
** HTTPS之前得到了很好的研究://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities** –
謝謝分享我的維基,但我已經通過該頁面,如果我能找到我的答案,我不會在這裏發佈問題 –
*「我試圖訪問儀表板時遇到未經授權的錯誤」* - 這是不是因爲你寫了'can:dashboard'而不是'can:read,:dashboard'?或者,如果沒有,您能否更具體地說明用戶未經授權的行爲? (什麼是控制器?) –