Ruby on rails 简单表单删除关联记录

Ruby on rails 简单表单删除关联记录,ruby-on-rails,ruby-on-rails-5,simple-form,Ruby On Rails,Ruby On Rails 5,Simple Form,我使用的是simple_表单,我会让用户能够快速删除相关记录。(例如“检查/取消检查”) 用简单的形式怎么可能呢?还有其他的宝石可以帮你吗 父母有许多子女 <%= simple_form_for @parent do |f| %> <%= f.simple_fields_for :childens do |p| %> <%= p.input :title, as: :boolean %> <% end %> <% end

我使用的是simple_表单,我会让用户能够快速删除相关记录。(例如“检查/取消检查”) 用简单的形式怎么可能呢?还有其他的宝石可以帮你吗

父母有许多子女

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

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

<% end %>


Rails 5.2

您不需要另一块宝石。您需要做几件事:

  • allow\u destroy:true
    添加到父模型中的
    accepts\u嵌套的\u属性\u:children
  • 向嵌套表单添加
  • 通过在
    permit
    调用中的
    children\u attributes
    中列出控制器中的
    \u destroy
    伪属性,将其列为白名单
本质上,这是Rails的一个特性,
接受嵌套的属性-它设置
子属性
setter,不仅创建/更新相关记录,而且在传递的哈希中出现
\u destroy
时删除它们。

我使用了类似于以前的方法来添加此行为。您只需要向取消选择/选择回调添加一个AJAX方法来添加/删除关联。