如何为嵌套属性允许强参数?

Beb*_*bbs 4 ruby parameters ruby-on-rails

我得到一个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"
}
Run Code Online (Sandbox Code Playgroud)

小部件has_many位置和小部件位置belongs_towidgets_controller我认为可以在“ 0”以下允许所有参数的参数中设置了参数,但似乎不是吗?

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

有没有一种可行的/更好的方式来接受这些参数?

谢谢

Pav*_*van 5

试试这个

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