我有以下用户更新控制器
class RegistrationsController < Devise::RegistrationsController
def update
super
UserMailer.send_mail_on_account_update(current_user).deliver
end
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name, :username, :email, :password, :password_confirmation, :current_password, :shipping_details) }
end
def after_update_path_for(resource)
edit_user_registration_path(resource)
end
end
我的用户模型embeds_many :shipping_details
和送货详细信息包含一些字段,例如city,state。
在我的用户更新表单中,我有shipping_details的嵌套属性。但是当我提交表格时,我会看到以下内容 -
Parameters: {"utf8"=>"✓", "authenticity_token"=>"/baDj9ThSRdF80inrxzM2G3sTtCXYqxNpl4PgDLJczM=", "user"=>{"first_name"=>"rohit", "last_name"=>"sharma", "email"=>"rohit@sharma.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]", "shipping_details"=>{"address"=>"jldf", "city"=>"test"}}, "commit"=>"Update Details"}
Unpermitted parameters: shipping_details
如何让它允许shipping_details字段?我做错了什么?
答案 0 :(得分:1)
您提供:shipping_details
的方式意味着它需要一个简单的字符串值,然后您传入哈希值。你应该在你的许可证中这样做:
:shipping_details => { :address, :city }