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 :(得分:0)
可能的值是Devise::ParameterSanitizer
的一部分,%i(sign_up account_update sign_in)
,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