简单表单删除关联记录
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
。
我正在使用 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
。