我刚刚注意到,当用户尝试删除表单上的支票时,实际上并没有保持状态。
我的表单如下(使用Slim)
=f.tb_label :marketing_systems
=hidden_field_tag 'course_group[marketing_systems][]', nil
.col-sm-10
.multi-select
table
tbody
-MarketingSystem.ordered.each do |system|
-input_name = "course_group_marketing_system_#{system.id}"
tr
td = check_box_tag 'course_group[marketing_system_ids][]',
system.id,
@course_group.marketing_systems.include?(system),
id: input_name
我认为在隐藏标签字段上设置nil可以在为空时将其推送。但是事实并非如此。我的check_box_tag是否设置有问题,并且没有传递空值?
我尝试将参数放在括号中,然后在check_box_tag上将checked = false放入,但这没有用。如果我添加value = 0,那么它会引发一个参数过多的问题。我只是想通过删除system.id来更新数据,如果未选中的话。
答案 0 :(得分:0)
= form_for(@course_group) do |f|
.col-sm-10
.multi-select
table
f.collection_check_boxes(:marketing_systems, :id, :name) do |b|
tr
td
= b.label
td
= b.check_box