Rails使用fields_for删除多个对象复选框

时间:2018-03-27 23:12:23

标签: ruby-on-rails

我有两种模式 - 广告和广告城市(属于Campaign)。在广告系列的创建和编辑表单中,我使用fields_for来允许用户直接在广告系列修改页面上修改城市。我想为每个城市添加一个复选框,以便它们的ID将以参数中的数组(delete_cities)发送。

我的尝试:

<%= f.fields_for :cities do | city_form | %>
      <%= city_form.label :name %>
      <%= city_form.text_field :name%>
      <%= city_form.label :phone_number %>
      <%= city_form.text_field :phone_number %>
      <%= city_form.label :zip_code %>
      <%= city_form.text_field :zip_code %>
      <%= city_form.check_box :delete_cities %>
      </br>
    <% end %>

我无法解决这个问题。

1 个答案:

答案 0 :(得分:2)

根据docs

  

:allow_destroy

     

如果为true,则使用_destroy键和值为true的值(例如,1,'1,true或'true')销毁属性哈希中的所有成员。默认情况下,此选项处于关闭状态。

为了允许用户删除城市,您可以这样做:

File keytabFile = new File("/path/to/keytab");
KeyTab keytab = KeyTab.getInstance(keytabFile);
boolean keytabIsValid = keytab.isValid();
if (!keytabIsValid) {
   throw new ApplicationSpecificException("Keytab is not valid");
}

不要忘记在控制器中允许isValid()

<%= city_form.check_box :_destroy %>