Rails [Cocoon]:尽管删除了字段,仍然会添加链接吗?

时间:2015-07-10 21:17:45

标签: jquery ruby-on-rails nested-forms cocoon-gem

我使用最新的Cocoon gem在Rails 4上。一切都很完美;我唯一的问题是,当我删除嵌套字段时,添加链接仍然存在。与在README中一样,add的链接在_form中,而remove的链接在_ [model] _fields中。我正在使用SimpleForm:

_form.html.erb

<%= simple_form_for(@group) do |f| %>
  <%= f.input :name, :label_html => { class: "col-md-2" }, :input_html => { class: "col-md-10" } %>
  <div id="group_names">
    <%= f.simple_fields_for :group_names do |subgroup| %>
      <%= render 'group_name_fields', :f => subgroup %>
      <div class="links">
        <%= link_to_add_association 'add', f, :group_names %>
      </div>
    <% end %>
  </div>
<% end %>

_group_names_fields.html.erb

<div class="nested-fields">
  <%= f.input :subgroup, :label_html => { class: "col-md-2" }, :input_html => { class: "col-md-10" }, :required => false %>
  <%= link_to_remove_association "remove", f %>
</div>

我错过了什么?注意:我没有错过提交按钮,提交与删除一样有效。只是添加链接不会消失。对于这个简单的事情,我确信我做错了什么,但我似乎无法发现它。否则,我正在考虑在if语句中包含add链接,但我不确定那个条件是什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

https://www.java.com/en/download/manual.jsp<%= link_to_add_association 'add', f, :group_names %>应该在<%= f.simple_fields_for :group_names do |subgroup| %>循环之外。也解决了我当前的新问题,所以奖金!

这是haml中的cocoon README中列出的代码:

= simple_form_for @project do |f|
  = f.input :name
  = f.input :description
  %h3 Tasks
  #tasks
    = f.simple_fields_for :tasks do |task|
      = render 'task_fields', :f => task
    .links
      = link_to_add_association 'add task', f, :tasks
  = f.submit

我不知道haml,所以我不知道这是不是haml的事情,但.links实际上并不在f.simple_fields_for循环中。< / p>