From d13ec1b18570a6013d87e08e94b24eda99e3527c Mon Sep 17 00:00:00 2001
From: SylorHuang <sylor_huang@126.com>
Date: Wed, 13 Nov 2019 11:41:44 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E5=8D=B7=E5=A1=AB=E7=A9=BA=E9=A2=98?=
 =?UTF-8?q?=E7=9A=84bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/helpers/exercises_helper.rb | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

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