简单表单删除关联记录

Simple form remove associated record

我正在使用 simple_form,我会让用户能够快速删除相关记录。 (例如 "checking/uncheking") simple_form 怎么可能?还有其他 gem 可以帮助解决这个问题吗?

Parent 有很多 children

<%= simple_form_for @parent do |f| %>

  <%= f.simple_fields_for :childens do |p| %>
    <%= p.input :title, as: :boolean %>
  <% end %>

<% end %>

Rails 5.2

您不需要另一个 gem。您需要做几件事:

  • allow_destroy: true添加到父模型中的accepts_nested_attributes_for :children
  • 在嵌套表格中添加一个<%= p.input :_destroy, as: :boolean %>
  • 将控制器中的 _destroy 伪属性列入白名单,方法是在 permit 调用 children_attributes 中列出它

本质上这是 Rails' accepts_nested_attributes_for 的一个特性 - 它设置 children_attributes setter 不仅 create/update 相关记录而且还删除它们在传递的散列中存在 _destroy