我正在尝试制作自动评分功能。
DB由has_many和belongs_to relations组成的'survey - question - answer'。
它从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)
为什么会出现这个问题?我该如何解决?