Ruby on rails 设计不保存已在App Controller Rails 4中消毒的参数
我的注册工作正常,我有3个自定义字段:Ruby on rails 设计不保存已在App Controller Rails 4中消毒的参数,ruby-on-rails,devise,registration,strong-parameters,Ruby On Rails,Devise,Registration,Strong Parameters,我的注册工作正常,我有3个自定义字段:name、avatar、avatar\u cache 只有:name自定义字段给了我一个: 不允许的参数:控制台中的name 我已经清理了应用程序控制器中的强参数,并且化身/化身缓存正在正确保存。我错过什么了吗 def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :avatar, :avatar_cache,
name、avatar、avatar\u cache
只有:name
自定义字段给了我一个:
不允许的参数:控制台中的name
我已经清理了应用程序控制器中的强参数,并且化身/化身缓存正在正确保存。我错过什么了吗
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :avatar, :avatar_cache, :email, :password, :password_confirmation) }
end
def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :avatar, :avatar_cache, :email, :password, :current_password, :password_confirmation) }
end
目前,您已经重新定义了方法
configure\u-allowed\u-parameters
,这就是Ruby选择最新方法定义的原因,即为account\u-update
白名单属性的方法定义。因此,当您尝试使用自定义属性名称注册时,您将收到
不允许的参数:名称
警告
由于覆盖了方法configure\u allowed\u parameters
,Deviate不知道应该为注册而将自定义属性列入白名单
您的配置\u允许的\u参数方法应该如下所示:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
## ...
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :avatar, :avatar_cache, :email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :avatar, :avatar_cache, :email, :password, :current_password, :password_confirmation) }
end
end
class ApplicationController
你在应用程序中遇到了相同的错误吗?@KikeIsasiVelasco为什么要重新定义配置允许的参数
,我看到两个不同的方法定义,一个是清理注册
参数,另一个是帐户更新
?或者只是输入错误?您的用户
是否具有:name
属性?在控制台中检查它,因为一个用于更新用户帐户,另一个用于注册,这是我在几篇文章中读到的,我必须这样做@是的,它有:参数:{“utf8”=>“✓", "真实性令牌“=>”V5ACfT1uI1Z3o2VypwXe98pcVqRDIHNz0zJF/5cF/0w=“,“用户”=>{“姓名”=>“Kike”,“电子邮件”=>”kikeisasxxi@gmail.com“,“password”=>“[FILTERED]”,“password_confirmation”=>“[FILTERED]”},“commit”=>“Crear cuenta”}未经允许的参数:名称(0.2ms)开始