0
を破壊しない属性:_destroy私はデモの目的のために私の更新フォームを単純化していたレコード
class DesignerLayout < ActiveRecord::Base
has_many :designer_panels, dependent: :destroy
accepts_nested_attributes_for :designer_panels
_form.html.erb
<%= form_for @designer_layout do |f| %>
<%= f.fields_for :designer_panels, @designer_layout.designer_panels do |designer_panel_builder| %>
<%= designer_panel_builder.hidden_field :_destroy %>
<%= link_to '#', class: 'remove-item' do %>
<%= content_tag :span %>
<% end %>
<% end %>
<% end %>
form.js
$(document).ready(function(){
$('.remove-item').click(function(){
$(this).prev('input[type="hidden"]').val("1");
})
})
次がありますサーバーに送信:
Processing by DesignerLayoutsController#update as HTML
Parameters: { ... "designer_layout"=>{"designer_panels_attributes"=>{"0"=>{"_destroy"=>"1", "id"=>"5"}}} ...
ご覧のとおり、_destroy属性の値が「1」で、特定のパネルのIDとともに送信されます。ただし、レイアウトに属するパネルは削除されません。どうして?モデルで
あなたがのparamsをホワイトリストにあなたの強いのparamを表示することができますか? – dp7
def designer_layout_params params [:designer_layout] .permit! 終了 – Donato