我的模型Case
的Rails API中有一个RESTful创建操作。这很简单:
@case = Case.new(case_params)
if @case.save
render json: @case, status: :created, location: @case
else
render json: @case.errors, status: :unprocessable_entity
end
我将数据发布到端点(JSON),包含模型和关联的字段。当表格填写在前端时,包括地址。 Case
模型有许多Address
模型。
所以我将JSON中的地址包含为对象数组,例如:
{
"field_on_case": "value",
"addresses": [{
"street_address": "1234 wonderland"
}, {
"street_address": "4321 wonderland"
}]
}
执行此操作并POST到API时,我在Web服务器中看到:Unpermitted parameters: addresses
我在Case
方法的case_params
控制器中有这个代码段:
params.require(:case).permit(:addresses, addresses_attributes: [:id, :type, :street_address, :city, :zip, :state])
我的Case
模型中也有这一行:
accepts_nested_attributes_for :addresses
答案 0 :(得分:0)
如果属性是哈希,则需要指定:
addresses: [ ]
在你的参数中。
我想你可以使用:
params.require(:case).permit(addresses: [:type, :street_adress, :city, :zip, :state])
然后您也可以从模型中删除nested_attribute。