【问题标题】:How to permit strong params for nested attributes?如何允许嵌套属性的强参数?
【发布时间】:2015-06-16 15:52:31
【问题描述】:

当我尝试接受表单中的嵌套属性时,我在日志中收到 Unpermitted parameters: latitude, longitude, address 错误。确切的参数如下所示:

{  
  "widget"=> {
    "owner"=>"100", 
    "name"=>"Widget Co", 
    "locations_attributes" => {
      "0"=> {
        "latitude"=>"51.4794259", 
        "longitude"=>"-0.1026201", 
        "address"=>"123 Fake Street"
      }
    }
  },
  "commit"=>"Create Supplier", 
  "action"=>"create", 
  "controller"=>"widgets"
}

一个小部件has_many 位置,一个位置belongs_to 一个小部件。参数设置在widgets_controller 中,我认为它允许“0”下的所有内容,但似乎不允许?

def widget_params
  params.require(:widget).permit(:owner, :name, locations_attributes: [{"0" => []}])
end

有没有更好的方法来接受这些参数?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby parameters


    【解决方案1】:

    试试这个

    def widget_params
      params.require(:widget).permit(:owner, :name, locations_attributes: [:id, :latitude, :longitude, :address])
    end
    

    【讨论】:

      【解决方案2】:

      您的 widgets_params 代码应该是:

      def widget_params
        params.require(:widget).permit(:owner, :name, locations_attributes: [:latitude, :longitude, :address])
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-22
        • 2015-12-08
        • 2013-04-01
        • 2017-06-03
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多