如何允许嵌套属性的强参数?
How to permit strong params for nested attributes?
当我尝试接受来自表单的嵌套属性时,我在日志中收到 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
有没有更好的方法来接受这些参数?
谢谢
试试这个
def widget_params
params.require(:widget).permit(:owner, :name, locations_attributes: [:id, :latitude, :longitude, :address])
end
您的 widgets_params 代码应该是:
def widget_params
params.require(:widget).permit(:owner, :name, locations_attributes: [:latitude, :longitude, :address])
end
当我尝试接受来自表单的嵌套属性时,我在日志中收到 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
有没有更好的方法来接受这些参数?
谢谢
试试这个
def widget_params
params.require(:widget).permit(:owner, :name, locations_attributes: [:id, :latitude, :longitude, :address])
end
您的 widgets_params 代码应该是:
def widget_params
params.require(:widget).permit(:owner, :name, locations_attributes: [:latitude, :longitude, :address])
end