Ruby on rails 设计嵌入式对象';不允许的参数';错误

Ruby on rails 设计嵌入式对象';不允许的参数';错误,ruby-on-rails,ruby,forms,devise,gem,Ruby On Rails,Ruby,Forms,Devise,Gem,我有以下用于用户更新的控制器 class RegistrationsController < Devise::RegistrationsController def update super UserMailer.send_mail_on_account_update(current_user).deliver end before_filter :configure_permitted_parameters, if: :devi

我有以下用于用户更新的控制器

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

如何使其允许“装运详细信息”字段?我做错了什么?

您提供的
:shipping\u details
方法意味着它需要一个简单的字符串值,然后传入一个散列。您应该在您的许可证中执行此操作:

:shipping_details => { :address, :city }

如果我希望shipping details是一个哈希数组(因为用户可以有多个shipping details),该怎么办。我没有得到你的许可(:名字,:姓氏,:用户名,:电子邮件,:密码,:密码确认,:当前密码,发货详细信息:[:地址,:城市]),我得到了“未定义的方法”,访问权限为“
:shipping_details => { :address, :city }