diff --git a/app/helpers/exercises_helper.rb b/app/helpers/exercises_helper.rb index f457ce257..adce7a5ac 100644 --- a/app/helpers/exercises_helper.rb +++ b/app/helpers/exercises_helper.rb @@ -511,17 +511,28 @@ module ExercisesHelper end end else - st_answer_text = standard_answer_array.pluck(:answer_text).reject(&:blank?).map{|a| a.strip.downcase} + st_answer_text = standard_answer_array.pluck(:answer_text).reject(&:blank?).map{|a| a.strip.downcase}.uniq answers_content.each do |u| u_answer_text = u.answer_text.strip.downcase - if st_answer_text.include?(u_answer_text) #只要标准答案包含用户的答案,就有分数。同时,下一次循环时,就会删除该标准答案。防止用户的相同答案获分 - u.update_column("score",q_score_2) - score2 = score2 + q_score_2 - st_answer_text.delete(u_answer_text) + if st_answer_text.size == 1 + if st_answer_text.first == u + u.update_column("score",q_score_2) + score2 = score2 + q_score_2 + else + u.update_column('score',-1.0) + score2 += 0.0 + end else - u.update_column('score',-1.0) - score2 += 0.0 + if st_answer_text.include?(u_answer_text) #只要标准答案包含用户的答案,就有分数。同时,下一次循环时,就会删除该标准答案。防止用户的相同答案获分 + u.update_column("score",q_score_2) + score2 = score2 + q_score_2 + st_answer_text.delete(u_answer_text) + else + u.update_column('score',-1.0) + score2 += 0.0 + end end + end end else