2013-08-16 3 views
0

У меня есть таблиц БД «вопрос», «ответ». (Эти две таблицы были связаны has_many и belongs_to и nested_form отношений.)Rails: Как я могу получить логические данные с помощью переключателя?

И есть user_answer (булево, по умолчанию «ложь») столбец в ответ Таблица.

Я хочу сделать это так.

  1. Если пользователь установил переключатель, измените значение user_answer на «true».
  2. Затем я сравню другое значение в правильном столбце в таблице ответов,
  3. и, наконец, я сохраню результат в столбце is_correct в таблице вопросов.

Но я не знаю, как я могу это сделать. Это форма ввода.

<h1><%= @survey.name %></h1> 
<%= form_tag({:controller => "surveys", :action => "grading"}) do %> 
    <ol class="questions"> 
    <% @survey.questions.each do |question| %> 
    <li> 
    <strong><%= question.content %></strong> 
    <ol class="checkbox"> 
    <% question.answers.each do |answer| %> 
     <%= radio_button_tag(answer.user_answer) %> 
     <%= label("answer_".concat(answer.id.to_s).to_sym, answer.content) %> 
    <% end %> 
    </ol> 
    <hr /> 
    </li> 
    <% end %> 
    </ol> 

    <div><%= submit_tag("Submit", :class => "submit") %></div> 

Конечно, есть ошибки. radio_button_tag необходимо 2 параметра. Но я не знаю, как я могу это сделать. Пожалуйста, дайте мне знать.

ответ

0

Объявите константу в вашей модели, такие как:

STATUS = [['active', true], ['Inactive', false]] 

и использовать возможности для выбора в своих взглядах.

<%= f.select :status, options_for_select(User::STATUS) %> 

Полезные ресурсы:

http://apidock.com/rails/ActionView/Helpers/FormTagHelper/radio_button_tag

http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_for_select

+0

Благодаря Sami. Но, к сожалению, я только что закончил рельсы, поэтому я не мог понять ваш ответ на 100%. Я просто хочу сохранить true, если радиокнопка проверена, на «answer.user_answer». Не могли бы вы рассказать мне более подробно? – gunsmoke

+0

В каком столбце и в какой таблице вы сохраняете значение. – Sami

+0

Добавьте столбец/поле типа boolean в таблицу, в которой вы хотите сохранить результат. затем сделайте что-нибудь подобное для своего переключателя <% = form_for (@user) do | f | %>

<%= f.label :your-field-name, "Yes", :value => "true" %> <%= f.radio_button :your-field-name, true %> <%= f.label :your-field-name, "No", :value => "false" %> <%= f.radio_button :your-field-name, false, :checked => true %>
<% end %> – Sami

Смежные вопросы