Переключатель, чтобы функционировать как условный с simple_form в Rails, не сохраняется в базе данных

В настоящее время я не знаю, как создать переключатель с simple_form, который не является атрибутом ресурса.

Я пытаюсь создать переключатель, который не сохраняется в базе данных. Переключатель просто работает как условный: если yes радио-кнопка проверена, затем я добавлю некоторые вещи с помощью coffeescript. Если no выбран, то ничего не должно произойти.

пока код:

<%= simple_form_for(@model) do |f| %>
    <%= f.label "Were you referred here?" %>
    <div>
        <%= f.radio_button :referral_check%> Yes
    </div>
    <div>
        <%= f.radio_button :referral_check%> No
    </div>
    <div class="form-actions">
      <%= f.button :submit %>
    </div> 
<% end %> 

1 ответ

Решение

Это лучший способ сделать это:

<%= simple_form_for(@model) do |f| %>
   <%= f.label "Were you referred here?" %>
   <div>
       <%= radio_button_tag "referral", "true" %> Yes 
   </div>
   <div>
       <%= radio_button_tag "referral", "false" %> No 
   </div>
<% end %>

Атрибут referral не должен существовать в качестве атрибута для любой модели. Другими словами, ни в одной из таблиц базы данных нет ни одного столбца referral, Этот атрибут все равно будет передан на сервер со всеми остальными параметрами, но это нормально. Благодаря сильным параметрам и тому, что я использовал radio_button_tag таким образом, не привязывая этот входной выбор к текущей форме, с этим атрибутом ничего не произойдет. Как только он попадет на сервер, он будет просто проигнорирован.

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