From ac53a9578094ad4f77d7381ec5fb97b2a199f4ac Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 27 Aug 2019 14:11:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=A2=98=E5=88=86=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E8=BF=81=E7=A7=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/challenge.rb | 11 ++++++----- app/models/game.rb | 2 +- app/models/shixun.rb | 6 +----- app/views/challenges/index.json.jbuilder | 2 +- ...0190827055814_modify_challnege_score_for_choose.rb | 10 ++++++++++ 5 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 db/migrate/20190827055814_modify_challnege_score_for_choose.rb diff --git a/app/models/challenge.rb b/app/models/challenge.rb index adb54fae9..3c0f8cd28 100644 --- a/app/models/challenge.rb +++ b/app/models/challenge.rb @@ -45,11 +45,12 @@ class Challenge < ApplicationRecord # 关卡总分 def all_score - if self.st == 1 - self.choose_score - else - self.score - end + self.score + # if self.st == 1 + # self.choose_score + # else + # self.score + # end end # 开启挑战 diff --git a/app/models/game.rb b/app/models/game.rb index d81b794a5..d7c68dd5f 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -31,7 +31,7 @@ class Game < ApplicationRecord # 根据得分比例来算实际得分(试卷、实训作业) def real_score score - ((final_score < 0 ? 0 : final_score).to_f / challenge.all_score) * score + ((final_score < 0 ? 0 : final_score).to_f / challenge.score) * score end # 判断实训是否全部通关 diff --git a/app/models/shixun.rb b/app/models/shixun.rb index 81b444c0a..d61ba45b9 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -192,11 +192,7 @@ class Shixun < ApplicationRecord # 实训关卡的总分(由于大部分是实践题,因此没关联查choose表) # 提前加载问题:由于选择题比较少,所以几乎不会触发选择题的查询,所以没必要提前载入choose_score def all_score - sum = 0 - challenges.each do |challenge| - sum += challenge.st == 0 ? challenge.score : challenge.choose_score - end - sum + self.challenges.pluck(:score).sum end ### fork 数量 diff --git a/app/views/challenges/index.json.jbuilder b/app/views/challenges/index.json.jbuilder index a542b8119..37ce94305 100644 --- a/app/views/challenges/index.json.jbuilder +++ b/app/views/challenges/index.json.jbuilder @@ -13,7 +13,7 @@ if @challenges.present? json.position challenge.position json.st challenge.st json.name challenge.subject - json.score challenge.all_score + json.score challenge.score json.passed_count challenge.user_passed_count json.playing_count challenge.playing_count json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) diff --git a/db/migrate/20190827055814_modify_challnege_score_for_choose.rb b/db/migrate/20190827055814_modify_challnege_score_for_choose.rb new file mode 100644 index 000000000..7b96877e3 --- /dev/null +++ b/db/migrate/20190827055814_modify_challnege_score_for_choose.rb @@ -0,0 +1,10 @@ +class ModifyChallnegeScoreForChoose < ActiveRecord::Migration[5.2] + def change + challenges = Challenge.where(st: 1) + challenges.find_each do |c| + puts(c.id) + score = c.challenge_chooses.sum(:score) + c.update_column(:score, score) + end + end +end