You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
787 B
26 lines
787 B
class Board < ApplicationRecord
|
|
belongs_to :course, touch: true
|
|
|
|
has_many :messages, -> { order(created_on: :desc) }, dependent: :destroy
|
|
has_many :visible_messages, -> { visible }, class_name: "Message"
|
|
belongs_to :last_message, class_name: 'Message', foreign_key: :last_message_id, optional: true
|
|
|
|
scope :roots, -> { where(parent_id: 0)}
|
|
|
|
validates :name, presence: true, length: {maximum: 30}
|
|
# validates :description, presence: true, length: {maximum: 255}
|
|
|
|
# 子讨论区
|
|
def children
|
|
Board.where(parent_id: self.id).reorder("position asc")
|
|
end
|
|
|
|
def fix_name
|
|
return name if parent_id != 0
|
|
|
|
course_modules = self.course.board_course_modules
|
|
course_modules.present? ? course_modules[0].module_name : self.name
|
|
end
|
|
|
|
end
|