55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class CourseActivity < ApplicationRecord
 | ||
|   belongs_to :course_act, polymorphic: true
 | ||
|   belongs_to :course
 | ||
|   belongs_to :user
 | ||
|   belongs_to :exercise
 | ||
|   belongs_to :poll
 | ||
|   belongs_to :course_message
 | ||
|   belongs_to :homework_common
 | ||
| 
 | ||
|   # after_create :add_course_lead
 | ||
| 
 | ||
|   def container_name
 | ||
|     case course_act_type
 | ||
|     when "HomeworkCommon"
 | ||
|       course_act&.name
 | ||
|     when "Exercise"
 | ||
|       course_act&.exercise_name
 | ||
|     when "Poll"
 | ||
|       course_act&.poll_name
 | ||
|     when "Message"
 | ||
|       course_act&.subject
 | ||
|     else
 | ||
|       ""
 | ||
|     end
 | ||
|   end
 | ||
| 
 | ||
|   # 发布新课导语
 | ||
|   # 导语要放置在课程创建信息之后
 | ||
|   def add_course_lead
 | ||
|     # 避免空数据迁移报错问题
 | ||
|     if self.course_act_type == "Course"
 | ||
|       sample = PlatformSample.where(:samples_type => "courseGuide").first
 | ||
|       if sample.present? && sample.contents.present?
 | ||
|         content = sample.contents
 | ||
|       elsif Message.find(12440)
 | ||
|         lead_message = Message.find(12440)
 | ||
|         content = lead_message.content
 | ||
|       end
 | ||
|       if content
 | ||
|         # message的status状态为0为正常,为1表示创建课程时发送的message
 | ||
|         # author_id 默认为课程使者创建
 | ||
|         message = Message.create(subject: "新课导语",
 | ||
|                                 board_id: course.course_board.try(:id),
 | ||
|                                 author_id: 1,
 | ||
|                                 sticky: true,
 | ||
|                                 status: true,
 | ||
|                                 message_detail_attributes: {content: content}
 | ||
|                               )
 | ||
|         # 更新的目的是为了排序,因为该条动态的时间可能与课程创建的动态创建时间一致
 | ||
|         message.course_acts.first.update_attribute(:updated_at, message.course_acts.first.updated_at + 1) if message.course_acts.first
 | ||
|       end
 | ||
|     end
 | ||
|   end
 | ||
| end
 |