forgeplus/app/models/course_activity.rb

55 lines
1.8 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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