2

我有一个具有深度嵌套的表单,用于创建属性模板。property_template has_many property_template_fields 和 property_template_field has_many property_template_options。

一切正常,除了当我已经创建了一个字段并且该字段有 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 %>   
4

2 回答 2

2

通过使用link_to_remove_association中的 wrapper-class 选项,我能够在我的项目中解决这个问题。我在子部分中使用了一个 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>

或类似的东西可以解决问题。

于 2014-08-12T17:16:23.837 回答
1

nested-fields在第二部分 缺课

nested-fields是选项的默认wrapper-class

于 2019-01-25T12:46:00.033 回答