2013-06-12 40 views
2

我有一個窗體,它具有深度嵌套,並用於創建屬性模板。 property_template has_many property_template_fields和property_template_field has_many property_template_options。Rails Cocoon:刪除未移除父項的子項(深度嵌套窗體)

一切工作正常,但那個時候我已經創建了一個領域,該領域具有1點或更多的選擇,而我試圖刪除只有一個選項。我希望它只是刪除該選項,但是當我點擊它時刪除了所有選項和字段。有沒有辦法讓我去除那個孩子,而不是父母或兄弟姐妹?

_form.html.erb

<%= simple_form_for [:admin, @property_template] do |f| %> 

<ul id="properties"> 
    <fieldset> 
     <div> 
      <%= f.input :name %> 
      <ul> 
       <div> 
        <%= f.simple_fields_for :property_template_fields do |property| %> 
          <%= render "property_template_field_fields", :f => property %> 
        <% end %> 
       </div> 
       <br /> 
       <div><%= link_to_add_association "Add Property", f, :property_template_fields, :partial => "property_template_field_fields" %></div> 
      </ul> 
     </div> 
     <%= f.submit %> 
    </fieldset> 
</ul> 

_propety_template_fields

<div class="nested-fields" > 
<li><%= f.input :name, label:"Field Name" %></li> 
<li style='float:right;'><%= link_to_remove_association "Remove", f %></li> 
<ul> 
    <div> 
     <%= f.simple_fields_for :property_template_options do |option| %> 
      <%= render "property_template_option_fields", :f => option %> 
     <% end %> 
    </div> 
</ul> 
<div style='float:right;'><%= link_to_add_association "Add Option", f, :property_template_options, :partial => 'property_template_option_fields' %> | </div>     

_propety_template_options

<li style='padding-left:35px;'><%= f.input :value, :label => 'Field Option' %></li> 
<li style='float:right;'><%= link_to_remove_association "Remove Option", f %></li> 
<%= f.hidden_field :position %> 
+0

我也有這個問題。你有沒有解決這個問題? – penner

回答

2

我可以通過使用link_to_remove_association中的包裝類選項來解決我的項目中的這個問題。我在子部分中使用了一個div作爲包裝。

所以,看是否改變_property_template_options到

<div class="myclass" > 
<li style='padding-left:35px;'><%= f.input :value, :label => 'Field Option' %></li> 
<li style='float:right;'><%= link_to_remove_association "Remove Option", f, { wrapper_class: "myclass" } %></li> 
<%= f.hidden_field :position %> 
</div> 

或類似的東西解決了問題。

相關問題