【发布时间】:2021-05-17 11:15:06
【问题描述】:
我有一个父母,我可以添加多个孩子,我想在每个孩子中添加一个带有茧的克隆按钮。
按照next solution我做了这个代码:
这些是模型:
class MantenimientoSetup < ApplicationRecord
has_many :actuation_setups, inverse_of: :mantenimiento_setup, validate: true, autosave: true, dependent: :destroy
accepts_nested_attributes_for :actuation_setups, allow_destroy: true, reject_if: :all_blank
end
class ActuationSetup < ApplicationRecord
belongs_to :mantenimiento_setup, inverse_of: :actuation_setups
end
我必须从子部分中添加克隆按钮... parent and child form
但是对于每个嵌套的新子对象,我都需要这个按钮,如下所示: enter image description here
这些是父子部分:
<!-- views/mantenimiento_setups/_form.html.erb -->
<%= form_for @mantenimiento_setup do |f| %>
...
...
...
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Configuraciones</h4>
</div>
<div class="panel-body mantenimiento-setup-element">
<%= f.fields_for :actuation_setups do |act_setup_builder| -%>
<%= render 'actuation_setup_fields', f: act_setup_builder %>
<%= link_to_add_association 'Clone', f, :actuation_setups, data: {"association-insertion-node" => ".mantenimiento-setup-element", "association-insertion-method" => "append"}, wrap_object: Proc.new {|d| d = act_setup_builder.object.dup; d}, class: "btn btn-info btn-sm" %>
<% end -%>
</div>
<div class="panel-footer">
<%= link_to_add_fields 'Add new setup', f, :actuation_setups, {mantenimiento_setup: f.object}, {class: "btn btn-success", nested_form: "/mantenimiento_setups/actuation_setup_fields" }%>
</div>
</div>
<%= save_button %>
<% end %>
<!-- views/mantenimiento_setups/_actuation_setup_fields.html.erb -->
<div class='row fields'>
<div class="col-md-3 actuation-type-div-selector">
...
...
...
<div class="col-md-1">
<label class="control-label invisible">...</label><br/>
<%= link_to_remove_fields "Remove", f%>
</div>
</div>
如果我将克隆按钮粘贴到子部分中,请关闭以删除按钮...
<!-- views/mantenimiento_setups/_actuation_setup_fields.html.erb -->
<div class='row fields'>
<div class="col-md-3 actuation-type-div-selector">
...
...
...
<div class="col-md-1">
<label class="control-label invisible">...</label><br/>
<%= link_to_remove_fields "Remove", f%>
</div>
<div class="col-md-1">
<label class="control-label invisible">...</label><br/>
<%= link_to_add_association 'Clone', f, :actuation_setups, data: {"association-insertion-node" => ".mantenimiento-setup-element", "association-insertion-method" => "append"}, wrap_object: Proc.new {|d| d = act_setup_builder.object.dup; d}, class: "btn btn-info btn-sm" %>
</div>
</div>
它返回此错误是因为我正在从子到子关联调用关联不存在:
Association actuation_setups doesn't exist on ActuationSetup
如何为每个孩子添加一个克隆按钮?
【问题讨论】:
标签: ruby-on-rails nested clone cocoon-gem