47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
class Subject < ActiveRecord::Base
|
|
#status :0 编辑中 1 审核中 2 发布
|
|
belongs_to :user
|
|
belongs_to :course_list
|
|
belongs_to :major
|
|
attr_accessible :description, :name, :status, :visits, :user_id, :course_list_id, :major_id, :learning_notes, :introduction
|
|
|
|
has_many :stages, :dependent => :destroy, :order => "stages.id ASC"
|
|
has_many :stage_shixuns, :dependent => :destroy
|
|
|
|
def subject_choices
|
|
count = 0
|
|
self.stage_shixuns.each do |stage_shixun|
|
|
shixun = stage_shixun.shixun
|
|
count += shixun.challenges.where(:st => [1, 2]).count
|
|
end
|
|
count
|
|
end
|
|
|
|
def subject_shixuns
|
|
count = 0
|
|
self.stage_shixuns.each do |stage_shixun|
|
|
shixun = stage_shixun.shixun
|
|
count += shixun.challenges.where(:st => 0).count
|
|
end
|
|
count
|
|
end
|
|
|
|
def subject_challenges
|
|
count = 0
|
|
self.stage_shixuns.each do |stage_shixun|
|
|
shixun = stage_shixun.shixun
|
|
count += shixun.challenges.count
|
|
end
|
|
count
|
|
end
|
|
|
|
def subject_score
|
|
score = 0
|
|
self.stage_shixuns.each do |stage_shixun|
|
|
shixun = stage_shixun.shixun
|
|
score += shixun.shixun_score
|
|
end
|
|
score
|
|
end
|
|
end
|