# 添加到 URL 单击 link_to_add 或 link_to_remove_association

# added to URL when clicking link_to_add OR link_to_remove_association

我正在使用 Rails 6,我正在努力使 nested_fields 正常工作。我正在使用茧。没有JS错误,正确加载了JQuery。 nested_form 正确加载嵌套数据,但我无法添加新行或删除现有行。这是我的代码:

在_form.html.erb

<div id="entry_links">
     <%= f.fields_for :entry_links do |ff| %>
          <%= render 'entry_link_fields', f: ff %>
     <% end %>  
</div>    
<div id="links">
     <%= link_to_add_association '<span class="oi" data-glyph="plus" title="icon name" aria-hidden="true"></span> Add Link '.html_safe, f, :entry_links, class: "btn btn-primary" %>
</div>

_entry_link_fields.html.erb

<div class="nested-fields">
    <div class = "field row">
        <div class="col-md-1">
            <%= f.text_field :link_type, class: "form-control" %>
        </div>
        <div class="col-md-3">
            <%= f.text_field :label, class: "form-control" %>
        </div>
        <div class="col-md-6">
            <%= f.text_field :link, class: "form-control" %>
        </div>
        <div class="col-md-1">
            <%= f.number_field :line, class: "form-control" %>
        </div>
        <div class="col-md-1">
            <%= link_to_remove_association '<span class="oi" data-glyph="trash" title="icon name" aria-hidden="true"></span>'.html_safe, f, class: "btn btn-danger" %>
        </div>
     </div>
</div>

以防万一,这是我的 package.json 文件的片段,其中列出了 jQuery 和 coocon

{
     "cocoon-js": "^0.0.5",
     "jquery": "^3.5.1",
}

我试过 @nathanvda/cocooncocoon-js-vanilla 都无济于事。

当我单击这些链接中的任何一个时,唯一发生的事情是在 URL 框中添加了一个“#”。我在另一个答案中读到它可能与 JQuery 错误有关,但我的情况并非如此,因为我的 JS 日志没有显示任何错误并且我能够从内部正确调用其他 JQuery 函数同一个应用。

所以事实证明一切都是正确的,除了我完全错过了这一行:

<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

将该行添加到我的 application.html.erb 文件后,所有内容都已正确加载并且我的链接按预期工作。