2017-08-05 3 views
0
class ApplicationController < ActionController::Base  
    before_action :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email]) 
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes: [:bank_name, :bank_account]]) 
    end 
end 

答えて

0

可能な値は%i(sign_up account_update sign_in)である、Devise::ParameterSanitizerの一部であり、devise_controller?は電流制御がDeviseControllerから継承するかどうかを確認するための便利な方法です。

基本的には、configure_permitted_parametersメソッドを使用してサポートする各アクションの許可されたパラメータを構成します。

ただし、これを行うための推奨される方法は、このような初期化子を使用することです:

# config/initializers/devise_permitted_parameters.rb 
module DevisePermittedParameters 

    extend ActiveSupport::Concern 

    included do 
    before_action :configure_permitted_parameters 
    end 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email]) 
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes: [:bank_name, :bank_account]]) 
    end 

end 

DeviseController.send :include, DevisePermittedParameters 
+0

をキーワードが正確にグーグルを行わず、ここで使用することを第一引数を知っていること可能ですか? たとえば、私は次のコマンドを使用します:rake routeコマンドを使用して、経路を観察することによってaccount_updateを編集します。 –

+0

@MuhammadAamir:[このリンク](https://github.com/plataformatec/devise/blob/88724e10adaf9ffd1d8dbfbaadda2b9d40de756a/lib/devise/parameter_sanitizer.rb#L35)を参照してください。 – 31piy

関連する問題