2016-10-18 1 views
0

그래서 나는액세스 컨트롤러 자체 before_action의 일부를 제외하고

class RandomActionController < ApplicationController 

컨트롤러 말을하고 난 지금

before_action :check_authorization, except: [:create, :get_actions, ..] 

RandomActionController에 사용 ApplicationController의 방법 check_authorizationRandomActionController 안에있는 또 다른 동작을 수행하려면 except 섹션의 동작을 제외하고 check_authorization 섹션을 작성해야합니다. 내 문제는, 그 작업을 해시/배열 또는 다른 형식으로 어떻게 얻을 수 있습니까?

+1

방법/상수에 넣고 두 번 사용하십시오. 유일한 방법은 –

답변

1

except 부분으로 전달하는 것은 리터럴 배열, 문자열 또는 기호입니다. Rails는 컨트롤러 콜백을 사용하여 선언 된 인수를 추출 할 수 없습니다 (afaik).

조치 목록을 다시 사용하려면 해당 조치를 식별자에 링크해야합니다.

예를 들어이 패턴은 내가 자주 사용 :

class ApplicationController 

    private 

    def self.member_actions 
    [:show, :edit, :destroy, :update] 
    end 

    def self.collection_actions 
    [:new, :index, :create] 
    end 
end 

class FooController < ApplicationController 
    before_action :set_foo, only: member_actions 

    def self.member_actions 
    super + [:fuzzle, :wuzzle] 
    end 
end 

하지만 당신은 단지뿐만 아니라 상수 또는 클래스 컨텍스트에서 사용할 수 있습니다 무엇을 사용할 수 있습니다.

+0

고맙습니다. 그게 나를 위해 일할거야. –

관련 문제