Простой шрифт Rails Simple Form вместо радиокнопок прерывает поток проверки формы

Я строю форму сейчас Rails & Simple_form с проверками на модели. В форме у меня есть несколько коллекций переключателей.

Для каждой из переключателей я скрываю фактическую кнопку и добавляю font awesome значок. Я пробовал это с f.collection_radio_buttons и просто заменив simple_form f.input тег с простым HTML, который он будет генерировать. Однако после проверки формы я могу получить только возвращаемые значения и сообщения об ошибках, которые отображаются, когда я придерживаюсь этого формата:

<%= f.input field_value, label: false, as: :radio_buttons, collection: [1,2,3,4,5] %>

Кажется, что почти любые изменения, которые я делаю в переключателе по умолчанию, приводят к тому, что он исключается из потока проверки формы. Значения отправляются правильно, хотя.

По сути, форма работает, значения сохраняются даже после сбоя проверки. Что не так, так это то, что сообщения об ошибках не отображаются, а значения не помещаются обратно в их поля, поэтому они не видны

По сути, я хочу получить потрясающую иконку вместо радиокнопки, у меня такое ощущение, что многие люди уже делали это раньше, но я не могу найти много ресурсов в Интернете по этому поводу.

Ниже приведен грубый пример HTML/ERB, с которым я экспериментировал. При этом форма работает, значки отображаются, и все выглядит довольно здорово, пока форма не будет перерисована после ошибки проверки. Затем значения загружаются обратно в поле, но не отображаются для этих полей. Любые ошибки проверки также не отображаются.

<div class="form-group radio_buttons required rating_<%= field_value.to_s %>">
  <input type="hidden" name="rating[<%= field_value.to_s %>]" value="">
  <% (1..5).to_a.each do |number| %>
    <span class="radio">
      <label for="rating_<%= field_value.to_s %>_<%= number %>" id="<%= number %>" data-target=".rating_<%= field_value.to_s %>">
       <input class="radio_buttons optional" type="radio" value=<%= number %> name="rating[<%= field_value.to_s %>]" id="rating_<%= field_value.to_s %>_<%= number %>">
       <i class="fa fa-star fa-2x"></i>
      </label>
    </span>
  <% end %>
</div>

0 ответов

Другие вопросы по тегам