diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb index 0f6532372..8cb68b1d4 100644 --- a/app/controllers/challenges_controller.rb +++ b/app/controllers/challenges_controller.rb @@ -234,18 +234,21 @@ class ChallengesController < ApplicationController # {...}, ...] #} def crud_answer - raise '参考答案不能为空' if params[:challenge_answer].empty? - raise '占比之和必须为100%' if params[:challenge_answer].map{|a| a[:score]}.sum != 100 - ActiveRecord::Base.transaction do - @challenge.challenge_answers.destroy_all if @challenge.challenge_answers - params[:challenge_answer].each_with_index do |answer, index| - # 内容为空不保存 - next if answer[:contents].blank? - ChallengeAnswer.create(name: answer[:name], contents: answer[:contents], - level: index+1, score: answer[:score], challenge_id: @challenge.id) + if @challenge.challenge_answers && params[:challenge_answer].blank? + @challenge.challenge_answers.destroy_all + else + raise '参考答案不能为空' if params[:challenge_answer].empty? + raise '占比之和必须为100%' if params[:challenge_answer].map{|a| a[:score]}.sum != 100 + ActiveRecord::Base.transaction do + @challenge.challenge_answers.destroy_all if @challenge.challenge_answers + params[:challenge_answer].each_with_index do |answer, index| + # 内容为空不保存 + next if answer[:contents].blank? + ChallengeAnswer.create(name: answer[:name], contents: answer[:contents], + level: index+1, score: answer[:score], challenge_id: @challenge.id) + end end end - end # 查看参考答案接口 diff --git a/app/views/challenges/crud_answer.json.jbuilder b/app/views/challenges/crud_answer.json.jbuilder index b11268d99..e16f09423 100644 --- a/app/views/challenges/crud_answer.json.jbuilder +++ b/app/views/challenges/crud_answer.json.jbuilder @@ -1,2 +1,2 @@ json.status 1 -json.message "创建参考答案成功" \ No newline at end of file +json.message "操作成功" \ No newline at end of file