0

自動採点機能を作ろうとしています。

DBはhas_manyとbelongs_toの関係による「調査 - 質問 - 回答」で構成されています。

check_box_tag からユーザーの入力を取得し、回答モデルの user_answer 値を更新します。うまくいっています。問題は q.auto_check メソッドで発生しました。

サーベイコントローラー

def grading
  @survey = Survey.find(params[:id])
  @survey.user_id = current_user.id

  @survey.questions.each do |q|        
    params[:a_checkbox].each do |check|
      q.update(check)
    end
    q.auto_check
  end
end

質問モデル

class Question < ActiveRecord::Base

  def auto_check
    answers.each do |a|
      self.is_correct = true  if a.user_answer == true and a.correct == true
      self.save!
    end
  end
  ...

auto_check メソッドは正しく呼び出せますが、「answers.each do |a|」ラインが邪魔。

wrong number of arguments (0 for 1)

なぜこの問題が発生するのですか?どうすれば修正できますか?

4

0 に答える 0