Rails не может сохранить не отмеченный флажок - PullRequest
1 голос
/ 15 апреля 2019

Я только что заметил, что когда пользователь пытается удалить проверку формы, он фактически не поддерживает состояние.

Моя форма выглядит следующим образом (с 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 = false на check_box_tag, но это не сработало.Если я добавлю значение = 0, это вызовет проблему со слишком большим количеством аргументов.Я просто хочу обновить данные, удалив system.id, если они не были проверены.

1 Ответ

0 голосов
/ 15 апреля 2019

Просто используйте collection_check_boxes.

= 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...