我想使用cancan
来限制想要在我的应用中查看某些页面的用户。
所以我尝试通过本教程来做到这一点: http://www.roberthuberdeau.com/articles/9-Blog-tutorial-part-3
我有两个角色:Admin和Worker,我有两个控制器:Tasksadmins和Workers。
我想定义下一件事:
1)工人可以管理和查看Workerscontroller的所有内容。
2)管理员可以管理和查看Tasksadminscontroller的所有内容。
我不确定我是否正确定义了它:
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
我认为我不需要实现的下一件事是:“def初始化用户位是针对访客用户的。”我强制用户使用: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
的定义的最后。