1

これは私の最初の投稿です。

まず、私の拙い英語についてお詫び申し上げます。実際、英語が母国語ではないので、自分の考えを伝えることができるかどうか自信がありません。

とにかく、Railscasts 196-197 のネストされた形式に基づいて、Rails 3 でオンライン テスト プログラムを作成しています。

そのエピソードは古くなっていますが、stackoverflow と google の助けを借りて作ることができました。

問題は学生の受験票と自動採点システムです。

こんな感じでDBテーブルが構築されます。

survey | question 1 | answer 1 | answer 2
-- answer 3
-- ...
-- question 2 -- answer 1
-- ...
-- ...

考え方は単純です。In answer model, there are two boolean columns, correct and user_answer. Teacher can check correct answer while making examination, and students can check user_answer while taking examination.

ビュー survey/show.html.erb で、受験用の別のフォームを作成しました。学生がチェックボックスに入力して送信ボタンを押すと、アンケートコントローラーの採点方法で自動採点が行われます。そして最後に、彼らはテストの結果を見ることができます。

これはsurvey/show.html.erbです うまくいっています(チェックボックスとラベルが思い通りに見えます)

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

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

answer.user_answer が正しく保存できるかどうかはわかりません。結果ページを作成して表示できないためです。

redirect_to メソッドを使用しようとしています。このために、survey_controllerに採点方法を書きました

 def grading
    #@survey = Survey.find(params[:id])
    @survey = Survey.new

    redirect_to results_url
  end

そして、survey/results.html.erb ファイル (テストの結果を含む) を作成しました。しかし、機能していません。

この行を config/routes.rb に配置しましたが、まだ機能していません。

  match "surveys/grading" => "surveys#grading", :via => :post

これに関連するアイデアを教えてください。

ありがとう、上級者。

4

1 に答える 1