|
- 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
|