2017-12-07 12 views
1

나는 허가되지 않은 매개 변수에 전달되는 예외를 발생하기 위해특정 컨트롤러 메소드에서 "ActionController :: Parameters.action_on_unpermitted_parameters = : raise"를 토글 하시겠습니까?

ActionController::Parameters.action_on_unpermitted_parameters = :raise 

를 사용하려면,하지만 난 단지 대신/설정에서/설정하고 전체에 적용하는 데에, 특정 컨트롤러 방법에이 작업을 수행 할 수 환경. 그렇게 할 방법이 있습니까?

답변

1

Filters에 구조!

컨트롤러에서 매개 변수 설정을 포함하는 개인 메서드를 정의하고 특정 작업에 대해 before 필터에서 해당 메서드를 호출 할 수 있습니다.

예. create:update 작업에 예외를 발생 시키려면 다음을 수행하십시오.

class SomeController < ApplicationController 
    before_action :raise_action_on_unpermitted_parameters, only: %i[create update] 

    def index 
    # ... 
    end 

    def create 
    # ... 
    end 

    def update 
    # ... 
    end 

    private 

    def raise_action_on_unpermitted_parameters 
    ActionController::Parameters.action_on_unpermitted_parameters = :raise 
    end 
end