2011-10-15 109 views
0

使用惨惨的load_and_authorize_resource,你可以选择哪些动作是通过使用:only:except授权。即load_and_authorize_resource :only => [:index, :show]惨惨中授权控制器动作中嵌套资源

我愿做同样的事情在我的嵌套的资源,但不能让它开始工作。

我有这样一个嵌套的资源:

class TasksController < ApplicationController 
    load_and_authorize_resource :project 
    load_and_authorize_resource :task, :through => :project 
end 

,并尝试该功能限制“:单击”动作:

class TasksController < ApplicationController 
    load_and_authorize_resource :project 
    load_and_authorize_resource :task, :through => :project, :except => :click 
end 

但是,这是行不通的。任何想法如何选择与嵌套资源的某些行动?

回答

3

可以看出here

要跳过授权用于嵌套控制器skip_authorize_resource需要以下列方式中可以使用的动作。

class TasksController < ApplicationController 
    load_and_authorize_resource :project 
    load_and_authorize_resource :through => :project 

    skip_authorize_resource :only => :click 
    skip_authorize_resource :project, :only => :click 
end 

第一个skip_authorize_resource跳过授权检查任务,第二个跳过项目的授权检查。如果您想跳过某个操作的所有授权检查,则两者都是必需的。