Rails 5 отметка переключателя simple_form как требуется и предотвращение отправки формы, если она не заполнена - PullRequest
1 голос
/ 01 октября 2019

Я хочу пометить поле радиокнопки в своей форме, как требуется, чтобы, если пользователь щелкнет кнопку «Отправить» (не выбрав опцию радиокнопки), он получит сообщение об ошибке, что это поле является обязательным, так же, как это происходит с обычными полями ввода(при наличии опции required: true, как показано на рисунке)

Например: (это хорошо работает)

= f.input :value, required: true

enter image description here

Но это не работает:

= f.collection_radio_buttons :some_symbol, [[true, t('yes')], [false, t('no')]], :first, :last, required: true

Я использую Rails 5.2, simple_form & jQuery и, хотя я уверен, что этот вариант использования сталкивался со многими разработчикамиЯ не могу найти соответствующий вопрос / ответ, кроме взломов javascript (которых я предпочитаю избегать и предпочитаю использовать Rails или способ simple_form для обеспечения этой валидации внешнего интерфейса)

1 Ответ

1 голос
/ 01 октября 2019

Проверьте подпись метода https://apidock.com/rails/v6.0.0/ActionView/Helpers/FormOptionsHelper/collection_radio_buttons

collection_radio_buttons(object, method, collection, value_method, text_method, options = {}, html_options = {}, &block)

У вас есть хэш options, а затем хеш html_options. Ваш вызов метода устанавливает required: true в качестве опции, и я думаю, вам нужно установить его как html_option. Добавьте пустой {} между :last и required: true.

= f.collection_radio_buttons :some_symbol, [[true, t('yes')], [false, t('no')]], :first, :last, {}, required: true
...