class Hack < ApplicationRecord # status: 0 未发布; 1已发布 # diffcult: 难度 1:简单;2:中等; 3:困难 # 编程题 validates_length_of :name, maximum: 60 # 测试集 has_many :hack_sets, ->{order("position asc")}, :dependent => :destroy # 代码 has_many :hack_codes, :dependent => :destroy has_many :hack_user_codes, :dependent => :destroy has_one :hack_user_lastest_code, :dependent => :destroy scope :published, -> { where(status: 1) } scope :opening, -> {where(open_or_not: 1)} scope :mine, -> (author_id){ where(user_id: author_id) } def language if hack_codes.count == 1 hack_codes.first.language else hack_codes.pluck(:language) end end def code if hack_codes.count == 1 hack_codes.first.code else hack_codes.pluck(:code) end end end