Как мне установить флажок по умолчанию с помощью Rails collection_radio_buttons?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Итак, я пытаюсь установить первый переключатель как установленный по умолчанию для формы. Я не могу понять, как это сделать. Я могу получить все входные данные checked="checked" , добавив checked: true или checked: ‘проверено’ в параметрах html, как показано ниже:

 <%= f.collection_radio_buttons :category_id, @categories, :id, :name, {}, { checked: true } %>
<%= f.collection_radio_buttons :category_id, @categories, :id, :name, {}, { checked: 'checked' } %>
  

Я попытался указать checked: @category.first , как в следующем:

 <%= f.collection_radio_buttons :category_id, @categories, :id, :name, {}, { checked: @category.first } %>
  

Но это тоже не работает. Ни один из входных данных не проверяется.

Есть идеи?

Ответ №1:

Я думаю, вы должны быть отмечены id для проверки, поэтому измените на { checked: @category.first.id }

Комментарии:

1. Это правильно. Вы можете ознакомиться с документацией для получения дополнительной информации и примеров использования: apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper /…

2. Это сработало! Хотя мне пришлось ввести хэш параметров, а не хэш html_options (который у меня был раньше).

3. Спасибо — некоторое время боролся с этим.

4. Это работает, но переопределяет выбранное значение, хранящееся в базе данных в форме редактирования для существующего объекта..

Ответ №2:

Для меня работает запись этого в первых ветвях {}, таким образом:

 form.collection_radio_buttons(:category_id, @categories, :id, :name, { checked: @categories.first.id }, { class: "category-options"})
  

Комментарии:

1. Мне также приходилось использовать его таким образом