我想使用cancan
以限制想要在我的應用程序中查看某些頁面的用戶。在我的應用程序中使用cancan和設計
,所以我試圖通過本教程做到這一點: http://www.roberthuberdeau.com/articles/9-Blog-tutorial-part-3
我有兩個角色:管理員和工人,我有兩個控制器:Tasksadmins和工人。
我想定義接下來的事情:
1)工人可以管理和看到Workerscontroller的所有事情。
2)管理員可以管理和查看Tasksadmins控制器的所有內容。
我不知道我是否正確定義它:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :Admin
can :manage, :tasksadmins
elsif user.role? :Worker
can :manage, :workers
end
end
end
下一個,我認爲我並不需要實現的是:「在高清初始化用戶位來賓用戶。」我強迫用戶能夠sign_in:before_filter :authenticate_user
接下來的事情就是:開始限制訪問基於用戶角色的博客應用:
我不知道什麼,在哪裏我應該寫。
的例子,他寫道:
authorize! :edit, @article
所以我試着寫在tasksadmins控制器下一如下:
authorize! :edit, @tasksadmins
authorize! :new, @tasksadmins
authorize! :index, @tasksadmins
authorize! :create, @tasksadmins
authorize! :show, @tasksadmins
authorize! :destroy, @tasksadmins
,但我得到了一個錯誤:undefined method 'authorize!' for TasksadminsController:Class
請幫助我,我在cancan
的定義的最後。
我真的很驚訝,每個角色只能訪問一個控制器。你的「任務管理員」是否實際管理「任務管理」模型對象? – willglynn
是的..我的申請是:TODO清單。在tasksadmins控制器中,管理員可以爲工作人員提供任務。在「工人」控制器中,工作人員可以看到任務並只編輯完成按鈕(如果任務已完成或未完成)。 –