Rails[Cocoon]:尽管删除了字段,添加 link 仍然存在?
Rails[Cocoon]: add link persists despite removed field?
我正在 Rails 4 使用最新的 Cocoon gem。一切正常;我唯一的问题是,当我删除嵌套字段时,添加 link 仍然存在。正如在 README 中,用于添加的 link 在 _form 中,而用于删除的 link 在 _[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>
我错过了什么?注意:我没有错过提交按钮,提交和删除一样有效。只是添加 link 不会消失。对于这么简单的事情,我确信我只是做错了什么,但我似乎无法发现它。否则,我正在考虑将 add link 包装在 if 语句中,但我不确定该条件可能是什么。
谢谢!
Answer: <%= 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
循环中。
我正在 Rails 4 使用最新的 Cocoon gem。一切正常;我唯一的问题是,当我删除嵌套字段时,添加 link 仍然存在。正如在 README 中,用于添加的 link 在 _form 中,而用于删除的 link 在 _[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>
我错过了什么?注意:我没有错过提交按钮,提交和删除一样有效。只是添加 link 不会消失。对于这么简单的事情,我确信我只是做错了什么,但我似乎无法发现它。否则,我正在考虑将 add link 包装在 if 语句中,但我不确定该条件可能是什么。
谢谢!
Answer: <%= 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
循环中。