2011-10-15 87 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跳過授權檢查任務,第二個跳過項目的授權檢查。如果您想跳過某個操作的所有授權檢查,則兩者都是必需的。