diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb index 44fa18f56..4024a2629 100644 --- a/app/controllers/challenges_controller.rb +++ b/app/controllers/challenges_controller.rb @@ -164,6 +164,8 @@ class ChallengesController < ApplicationController @challenges = @shixun.challenges.joins(join_sql).select(base_columns).uniq + @shixun_modify = (@challenges.select{|c| c.status.present? }.size == @challenges.size) + #@challenges = @shixun.challenges.fields_for_list @editable = @shixun.status == 0 # before_action:有判断权限,如果没发布,则肯定是管理人员 @user = current_user diff --git a/app/models/challenge.rb b/app/models/challenge.rb index ab62cba77..15a96bf17 100644 --- a/app/models/challenge.rb +++ b/app/models/challenge.rb @@ -69,11 +69,15 @@ class Challenge < ApplicationRecord end # 开启挑战 - def open_game shixun + def open_game shixun, shixun_modify # 这里的identifier,status是关联了games取了games的identifier,status identifier = self.identifier if identifier.present? - (shixun.task_pass || self.status != 3) ? "/tasks/#{identifier}" : "" + if shixun_modify + "/shixuns/#{shixun.identifier}/shixun_exec.json" + else + (shixun.task_pass || self.status != 3) ? "/tasks/#{identifier}" : "" + end else (shixun.task_pass || position == 1) ? "/shixuns/#{shixun.identifier}/shixun_exec.json" : "" end diff --git a/app/views/challenges/index.json.jbuilder b/app/views/challenges/index.json.jbuilder index eae72dad2..98be8d17a 100644 --- a/app/views/challenges/index.json.jbuilder +++ b/app/views/challenges/index.json.jbuilder @@ -22,7 +22,7 @@ if @challenges.present? #json.playing_count @play_games_map.fetch(challenge.id, 0) json.playing_count (challenge.games.count - user_passed_count) json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) - json.open_game challenge.open_game(@shixun) + json.open_game challenge.open_game(@shixun, @shixun_modify) #json.open_game challenge.open_game(@shixun, @user.id) if @editable json.edit_url edit_shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier)