#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. Мне также приходилось использовать его таким образом