我使用最新的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链接,但我不确定那个条件是什么。
谢谢!
答案 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>