我想使用cancan
它来限制想要查看我的应用程序中某些页面的用户。
所以我尝试通过本教程来做到这一点: http ://www.roberthuberdeau.com/articles/9-Blog-tutorial-part-3
我有两个角色:Admin 和 Worker,我有两个控制器:Tasksadmins 和 Workers。
我想定义下一件事:
1)Workers可以管理和查看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 initialize user bit 是为来宾用户准备的。” 我强制用户登录: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
。