json.exercise do json.extract! exercise, :id, :exercise_name,:exercise_description,:exercise_status,:answer_open json.student_commit_status student_status #当前为学生且已提交时 end json.exercise_answer_user do json.is_teacher is_teacher_or json.user_name ex_answerer.real_name json.user_id ex_answerer.id json.login ex_answerer.login if exercise_user.present? json.start_at exercise_user.start_at json.score exercise_user.score.present? ? exercise_user.score.round(1).to_s : "0.0" end end all_question_status = [] if student_status == 2 #试卷的全部分数 json.exercise_scores do json.partial! "exercises/exercise_scores" #试卷的客观题分数及是否错误 json.objective_scores do json.partial! "exercises/question_scores", question_scores: ex_obj_array #客观问题正确与否的显示 end #试卷的主观题及是否错误 json.subjective_scores do json.partial! "exercises/question_scores", question_scores: ex_sub_array #主观题正确与否的显示 end end #主观题及客观题的全部分数及正确与否的状态 all_question_status = ex_obj_array + ex_sub_array elsif student_status == 1 json.question_status question_status end exercise_status = exercise.get_exercise_status(ex_answerer.id) #当前为老师,或为学生,但在试卷截止后且答案选择公开的 if is_teacher_or == 1 || (exercise_status == 3 && exercise.answer_open) ex_type = 4 else ex_type = 3 end json.exercise_questions do json.array! exercise_questions do |q| user_ques_answers = user_question_answers(q,ex_answerer.id,student_status,is_teacher_or,exercise_status,q.question_type,ex_type) user_ques_comments = user_ques_answers[:question_comment] if all_question_status.size > 0 this_ques_status = all_question_status.detect {|f| f[:q_id] == q.id} json.answer_status this_ques_status[:stand_status] end json.user_score user_ques_answers[:user_score].to_s json.partial! "exercise_questions/exercise_questions", question: q, ex_answerer: ex_answerer, choices:q.exercise_choices, shixun_challenges: q.exercise_shixun_challenges, exercise_type: ex_type, user_answer: user_ques_answers[:answered_content], shixun_type: user_ques_answers[:shixun_type] if user_ques_comments.count > 0 json.question_comments do json.partial! "exercises/exercise_comments", question_comment:user_ques_answers[:question_comment].first end else json.question_comments [] end end end #exercise_type 表示选择公用的模板类型,1为教师预览/编辑,2为空白试卷,3表示学生开始答题/答题未截止。