我正在尝试制作自动评分功能。
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)
为什么会出现这个问题?我该如何解决?