class ItemBank < ApplicationRecord # difficulty: 1 简单 2 适中 3 困难 enum item_type: { SINGLE: 0, MULTIPLE: 1, JUDGMENT: 2, COMPLETION: 3, SUBJECTIVE: 4, PRACTICAL: 5, PROGRAM: 6 } # item_type: 0 单选 1 多选 2 判断 3 填空 4 简答 5 实训 6 编程 belongs_to :user belongs_to :sub_discipline, optional: true has_one :item_analysis, dependent: :destroy has_many :item_choices, dependent: :destroy has_many :item_baskets, dependent: :destroy has_many :tag_discipline_containers, as: :container, dependent: :destroy has_many :tag_disciplines, through: :tag_discipline_containers belongs_to :container, polymorphic: true, optional: true validates :name, presence: true, length: { maximum: 1000, too_long: "不能超过1000个字符" } def analysis item_analysis&.analysis end def apply? !public && ApplyAction.exists?(container_type: "ItemBank", container_id: id, status: 0) end def type_string case item_type when "SINGLE" then "单选题" when "MULTIPLE" then "多选题" when "JUDGMENT" then "判断题" when "COMPLETION" then "填空题" when "SUBJECTIVE" then "简答题" when "PRACTICAL" then "实训题" when "PROGRAM" then "编程题" end end def difficulty_string case difficulty when 1 then "简单" when 2 then "适中" when 3 then "困难" end end end