我的project
buildings
有address
。当我建造一座建筑时,不会出现任何问题。当我编辑建筑物时,我得到Unpermitted parameter: :id
在我的building.rb:
permit_params :name, :construction_year, :floors, :building_type, :energy_label, :owner_id, :manager_id, :project_ids,
address_attributes: [:street, :number, :postal_code, :city]
参数:
{"utf8"=>"✓", "authenticity_token"=>"jNSKHkHXRr6W8+1vrpg6ZO8QN34zsByq8Hl/dkz0KFR2o4eU61qaHr3mVUQFfMoxKvjxX096N8a5kOPFw4QP5Q==", "building"=>{"project_ids"=>"1b4a46df-62bc-44ec-8915-e0d3b5e8b398", "name"=>"a1", "construction_year"=>"2010", "floors"=>"5", "building_type"=>"single_tenant", "energy_label"=>"A++", "owner_id"=>"98f74ca0-986f-4733-91e6-185a7c7920f5", "manager_id"=>"98f74ca0-986f-4733-91e6-185a7c7920f5", "address_attributes"=>{"street"=>"lane", "number"=>"1", "postal_code"=>"0000aa", "city"=>"somewhere", "id"=>"049e44df-6d0d-4c86-9ea8-34aba5b8d5f8"}}, "commit"=>"Update Building", "id"=>"db66a4fd-768b-4315-a4e9-3e7aa04d9cdf"}
不允许的ID是:
"id"=>"db66a4fd-768b-4315-a4e9-3e7aa04d9cdf"
我尝试按如下方式添加它(也以不同的方式添加如building_id),但它不会删除该消息。
permit_params :id, :name, :construction_year, :floors, :building_type, :energy_label, :owner_id, :manager_id, :project_ids,
address_attributes: [:street, :number, :postal_code, :city]
请告知。
答案 0 :(得分:2)
它不是建筑物:id
,而是应添加address_attributes
的{{1}}。
所以在:id
:
building.rb
答案 1 :(得分:0)
将:id
添加到嵌套属性
permit_params :id, :name, :construction_year, :floors, :building_type, :energy_label, :owner_id, :manager_id, :project_ids,
address_attributes: [:id, :street, :number, :postal_code, :city]
答案 2 :(得分:0)
add:id to address_attributes
permit_params :name, :construction_year, :floors, :building_type, :energy_label, :owner_id, :manager_id, :project_ids,
address_attributes: [:id, :street, :number, :postal_code, :city]