0

我有数据库表“问题”、“答案”。(这两个表已通过 has_many 和 belongs_to 以及nested_form 关系关联。)

并且答案表中有 user_answer(boolean, default 'false') 列。

我想让它变成这样。

  1. 如果用户选中单选按钮,则 user_answer 更改为“真”值。
  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 个参数。但我不知道我该怎么做。请告诉我。

4

1 回答 1

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

于 2013-08-16T12:03:18.880 回答