diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index a90855706..d2c9f88d2 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -128,8 +128,8 @@ class CoursesController < ApplicationController # POST /courses # POST /courses.json def create - ActiveRecord::Base.transaction do - begin + begin + ActiveRecord::Base.transaction do @course = Course.new(name: params[:name], class_period: params[:class_period], credit: params[:credit], end_date: params[:end_date], is_public: params[:is_public], school_id: @school.id, authentication: params[:authentication], professional_certification: params[:professional_certification]) @@ -166,8 +166,6 @@ class CoursesController < ApplicationController CourseMember.create!(course_id: @course.id, user_id: s_member.user_id, role: 2) end - CreateSubjectCourseStudentJob.perform_later(@course.id) if @course.subject.subject_appointments.count > 0 - Inform.create(container: @course, description: @subject.learning_notes, name: "学习须知") @course.create_stages @course.subject @@ -176,11 +174,12 @@ class CoursesController < ApplicationController course_module_types = params[:course_module_types] @course.create_course_modules(course_module_types) end - rescue => e - uid_logger_error(e.message) - tip_exception(e.message) - raise ActiveRecord::Rollback end + CreateSubjectCourseStudentJob.perform_later(@course.id) if @course.subject && @course.subject.subject_appointments.count > 0 + rescue => e + uid_logger_error(e.message) + tip_exception(e.message) + raise ActiveRecord::Rollback end end diff --git a/app/jobs/create_subject_course_student_job.rb b/app/jobs/create_subject_course_student_job.rb index 71d4cda5f..a7b8cb8af 100644 --- a/app/jobs/create_subject_course_student_job.rb +++ b/app/jobs/create_subject_course_student_job.rb @@ -14,10 +14,9 @@ class CreateSubjectCourseStudentJob < ApplicationJob Rails.logger.info("##{course.students.where(user_id: app.user_id)}") next if course.students.where(user_id: app.user_id).any? worker.add same_attrs.merge(user_id: app.user_id) - app.destroy end end - # Rails.logger.info("2:course.students.count:##{course.students.count}") - # course.subject.subject_appointments.destroy_all + Rails.logger.info("2:course.students.count:##{course.students.count}") + course.subject.subject_appointments.destroy_all end end