diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 74059b314..9979ae48f 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1152,7 +1152,7 @@ class ExercisesController < ApplicationController # 1 老师权限,0 学生权限 @is_teacher_or = (@user_course_identity < Course::STUDENT) ? 1 : 0 @student_status = 2 - @exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers).order("question_number ASC") + @exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers,:exercise_answer_comments).order("question_number ASC") @question_status = [] get_exercise_status = @exercise.get_exercise_status(current_user) #当前用户的试卷状态 @ex_answer_status = @exercise.get_exercise_status(@ex_user&.user) #当前试卷用户的试卷状态 @@ -1709,9 +1709,9 @@ class ExercisesController < ApplicationController ques_number = q.question_number end if q.question_type != Exercise::PRACTICAL - ques_vote = q.exercise_answers.search_exercise_answer("user_id",user_id) + ques_vote = q.exercise_answers.select{|answer| answer.user_id == user_id} else - ques_vote = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id) + ques_vote = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id} end ques_status = 0 if ques_vote.present? diff --git a/app/helpers/exercises_helper.rb b/app/helpers/exercises_helper.rb index ef9261990..e13f754be 100644 --- a/app/helpers/exercises_helper.rb +++ b/app/helpers/exercises_helper.rb @@ -10,9 +10,9 @@ module ExercisesHelper exercise_obj_status.each do |q| q_type = q.question_type if q_type == Exercise::PRACTICAL - answers_content = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id) + answers_content = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id} else - answers_content = q.exercise_answers.search_answer_users("user_id",user_id) + answers_content = q.exercise_answers.select{|answer| answer.user_id == user_id} end if q_type <= Exercise::JUDGMENT @@ -40,7 +40,7 @@ module ExercisesHelper ques_score = 0.0 end else - ques_score = answers_content.score_reviewed.select(:score).pluck(:score).sum + ques_score = answers_content.select{|answer| answer.score >= 0.0}.pluck(:score).sum end if ques_score >= q.question_score #满分作答为正确 @@ -64,7 +64,7 @@ module ExercisesHelper exercise_sub_status = exercise_questions.find_by_custom("question_type",Exercise::SUBJECTIVE) #主观题 @ex_sub_array = [] #主观题的已答/未答 exercise_sub_status.each do |s| - sub_answer = s.exercise_answers.search_answer_users("user_id",user_id) #主观题只有一个回答 + sub_answer = s.exercise_answers.select{|answer| answer.user_id == user_id} #主观题只有一个回答 if sub_answer.present? && sub_answer.first.score >= 0.0 if s.question_score <= sub_answer.first.score stand_status = 1 @@ -772,12 +772,12 @@ module ExercisesHelper question_comment = [] # user_score_pre = nil if ques_type == 5 - exercise_answers = q.exercise_shixun_answers.search_shixun_answers("user_id",ex_answerer_id) + exercise_answers = q.exercise_shixun_answers.select{|answer| answer.user_id == ex_answerer_id} else - exercise_answers = q.exercise_answers.search_exercise_answer("user_id",ex_answerer_id) #试卷用户的回答 + exercise_answers = q.exercise_answers.select{|answer| answer.user_id == ex_answerer_id} #试卷用户的回答 end if student_status == 2 #当前为老师,或为学生且已提交 - user_score_pre = exercise_answers.score_reviewed + user_score_pre = exercise_answers.select{|answer| answer.score >= 0.0} if ques_type == 4 #主观题时,且没有大于0的分数时,为空 user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : nil elsif ques_type == 5 || ques_type == 3 @@ -829,7 +829,7 @@ module ExercisesHelper if ex_type == 4 #填空题/主观题/实训题有评论的 q_answer_id = exercise_answers.present? ? exercise_answers.first.id : nil - question_comment = q.exercise_answer_comments.search_answer_comments("exercise_answer_id",q_answer_id) + question_comment = q.exercise_answer_comments.select{|comment| comment.exercise_answer_id == q_answer_id} end { "user_score": (user_score.present? ? user_score.round(1).to_s : nil), diff --git a/app/views/exercises/_user_exercise_info.json.jbuilder b/app/views/exercises/_user_exercise_info.json.jbuilder index bdac3a985..c351a9b26 100644 --- a/app/views/exercises/_user_exercise_info.json.jbuilder +++ b/app/views/exercises/_user_exercise_info.json.jbuilder @@ -65,7 +65,7 @@ json.exercise_questions do shixun_type: user_ques_answers[:shixun_type], ques_position: nil, edit_type:nil - if user_ques_comments.count > 0 + if user_ques_comments.size > 0 json.question_comments do json.partial! "exercises/exercise_comments", question_comment:user_ques_answers[:question_comment].first end