2017-12-07 6 views
1

は私が許可されていないパラメータが渡される例外を発生させるために特定のコントローラメソッドで "ActionController :: Parameters.action_on_unpermitted_pa​​rameters =:raise"を切り替えますか?

ActionController::Parameters.action_on_unpermitted_parameters = :raise 

を使用したいが、私は唯一の代わりに/ configの中でそれを設定する/し、それが全体に適用されたの、特定のコントローラの方法でこれをやりたいです環境。そうする方法はありますか?

答えて

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 
関連する問題