diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index ce9c9af6c..106ba3dd4 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1129,12 +1129,12 @@ class CoursesController < ApplicationController def validate_course_name tip_exception("课堂名称不能为空!") if params[:course][:name].blank? - if params[:subject_id].blank? || @course.subject.blank? + if params[:subject_id].blank? || (@course && @course.subject.blank?) tip_exception("课程名称不能为空!") if params[:course_list_name].blank? tip_exception("课堂名称应以课程名称开头命名") unless params[:course][:name].index(params[:course_list_name]) && params[:course][:name].index(params[:course_list_name]) == 0 else - @subject = @course ? @course.subject : Subject.find_by!(id: params[:subject_id]) + @subject = @course.present? ? @course.subject : Subject.find_by!(id: params[:subject_id]) tip_exception("开始时间不能为空") if params[:start_date].blank? tip_exception("结束时间不能为空") if params[:end_date].blank? tip_exception("结束时间必须晚于开始时间") if params[:end_date] <= params[:start_date] diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index c36ad09b6..69bd01dde 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -23,24 +23,19 @@ class MyshixunsController < ApplicationController begin ActiveRecord::Base.transaction do begin - @shixun = Shixun.select(:id, :identifier).find(@myshixun.shixun_id) + @shixun = Shixun.select(:id, :identifier, :challenges_count).find(@myshixun.shixun_id) @myshixun.destroy! - StudentWork.where(:myshixun_id => @myshixun.id).update_all(:myshixun_id => 0, :work_status => 0) - - # 实训在申请发布前,是否玩过实训,如果玩过需要更改记录,防止二次重置 - shixun_mod = ShixunModify.where(:shixun_id => @shixun.id, :myshixun_id => @myshixun.id, :status => 1).take - shixun_mod.update_column(:status, 0) if shixun_mod rescue Exception => e logger.error("######reset_my_game_failed:#{e.message}") raise("ActiveRecord::RecordInvalid") end end # 删除版本库 - GitService.delete_repository(repo_path: @repo_path) + GitService.delete_repository(repo_path: @repo_path) unless @shixun.is_choice_type? rescue Exception => e if e.message != "ActiveRecord::RecordInvalid" - logger.error("######delete_repository_error:#{e.message}") + logger.error("######delete_repository_error-:#{e.message}") end raise "delete_repository_error:#{e.message}" end diff --git a/app/models/course.rb b/app/models/course.rb index bab02be01..b7bea6ec0 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -5,7 +5,7 @@ class Course < ApplicationRecord belongs_to :teacher, class_name: 'User', foreign_key: :tea_id # 定义一个方法teacher,该方法通过tea_id来调用User表 belongs_to :school, class_name: 'School', foreign_key: :school_id #定义一个方法school,该方法通过school_id来调用School表 - belongs_to :course_list + belongs_to :course_list, optional: true # 所属实践课程 belongs_to :subject, optional: true @@ -91,7 +91,7 @@ class Course < ApplicationRecord NORMAL = 6 # 普通用户 Anonymous = 7 # 普未登录 - validates :name, presence: true, length: { maximum: 30 } + validates :name, presence: true, length: { maximum: 60 } after_create :create_board_sync, :act_as_course_activity, :send_tiding diff --git a/app/views/courses/settings.json.jbuilder b/app/views/courses/settings.json.jbuilder index 1a67fbe27..be4470a66 100644 --- a/app/views/courses/settings.json.jbuilder +++ b/app/views/courses/settings.json.jbuilder @@ -1,5 +1,5 @@ -json.course_list_id @course.course_list.id -json.course_list_name @course.course_list.name +json.course_list_id @course.course_list&.id +json.course_list_name @course.course_list&.name json.name @course.name json.course_id @course.id json.school @course.school&.name diff --git a/dump.rdb b/dump.rdb index c4edd44ed..d3784bb93 100644 Binary files a/dump.rdb and b/dump.rdb differ