Rails:如何从单选按钮获取布尔数据?

时间:2013-08-16 11:51:22

标签: ruby-on-rails ruby-on-rails-3

我有DB表'问题','回答'。(这两个表已经通过has_many和belongs_to以及nested_form关系相关联。)

答案表中有user_answer(布尔值,默认'false')列。

我想这样做。

  1. 如果用户选中单选按钮,则user_answer将更改为“true”值。
  2. 然后我将比较答案表中正确列中的另一个值,
  3. 最后我将结果保存在问题表中的is_correct列中。
  4. 但我不知道该怎么办。这是输入表格。

    <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个参数。但我不知道该怎么办。请告诉我。

1 个答案:

答案 0 :(得分: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