Sha256: f1012666110350bf65938aa541c4cac147265bef7b31d84d7c1dd54f62c30f5a

Contents?: true

Size: 914 Bytes

Versions: 16

Compression:

Stored size: 914 Bytes

Contents

module Gaku
  class School < ActiveRecord::Base
    include Picture

    has_many :campuses
    has_many :simple_grades
    has_many :levels
    has_many :programs
    has_many :simple_grade_types

    validates :name, presence: true, uniqueness: true

    has_one :master_campus,
            -> { where master: true },
            class_name: Gaku::Campus,
            dependent: :destroy

    accepts_nested_attributes_for :levels, allow_destroy: true

    after_create :build_default_campus

    def to_s
      name
    end

    def primary?
      primary
    end

    def self.primary
      where(primary: true).first
    end

    def code_and_name
      "#{code}: #{name}"
    end

    private

    def build_default_campus
      if campuses.any?
        campus = campuses.first
      else
        campus = campuses.create(name: name)
      end

      campus.master = true
      campus.save
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
gaku_core-0.3.0 app/models/gaku/school.rb
gaku_core-0.3.0.pre.4 app/models/gaku/school.rb
gaku_core-0.3.0.pre.3 app/models/gaku/school.rb
gaku_core-0.3.0.pre.2 app/models/gaku/school.rb
gaku_core-0.3.0.pre.1 app/models/gaku/school.rb
gaku_core-0.3.0.pre.0 app/models/gaku/school.rb
gaku-0.2.4 core/app/models/gaku/school.rb
gaku_core-0.2.4 app/models/gaku/school.rb
gaku-0.2.3 core/app/models/gaku/school.rb
gaku_core-0.2.3 app/models/gaku/school.rb
gaku-0.2.2 core/app/models/gaku/school.rb
gaku_core-0.2.2 app/models/gaku/school.rb
gaku-0.2.1 core/app/models/gaku/school.rb
gaku_core-0.2.1 app/models/gaku/school.rb
gaku-0.2.0 core/app/models/gaku/school.rb
gaku_core-0.2.0 app/models/gaku/school.rb