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.
educoder/app/models/course_module.rb

28 lines
1.4 KiB

class CourseModule < ApplicationRecord
default_scope { order("course_modules.position ASC") }
belongs_to :course
# 二级目录
has_many :course_second_categories
validates :module_name, length: { maximum: 20 }
scope :graduation_module, -> { where(module_type: "graduation") }
scope :graduation_module_not_hidden, -> { graduation_module.where(hidden: 0) }
scope :board_module, -> { where(module_type: 'board') }
scope :attachment_module, -> { includes(:course_second_categories).where(module_type: 'attachment') }
scope :common_homework_module, -> { where(module_type: 'common_homework') }
scope :group_homework_module, -> { where(module_type: 'group_homework') }
scope :shixun_homework_module, -> { where(module_type: 'shixun_homework') }
scope :search_by_module_type, -> (type) {where(module_type:type)}
# 课堂模块的子目录
def course_second_categories
if module_type == "graduation" && CourseSecondCategory.where(course_module_id: self.id).count == 0
CourseSecondCategory.create!(course_module_id: self.id, course_id: self.course_id, name: "毕设选题", category_type: "graduation", position: 1)
CourseSecondCategory.create!(course_module_id: self.id, course_id: self.course_id, name: "毕设任务", category_type: "graduation", position: 2)
end
CourseSecondCategory.where(course_module_id: self.id)
end
end