Sha256: 4c9c36d0cac315a0713807dc81937ecc8a1fb30b98be97ad25da916dd0c2c5f7

Contents?: true

Size: 809 Bytes

Versions: 6

Compression:

Stored size: 809 Bytes

Contents

module Gaku
  class School < ActiveRecord::Base

    include Picture

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

    validates :name, presence: 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

    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

6 entries across 6 versions & 2 rubygems

Version Path
gaku_core-0.0.3 app/models/gaku/school.rb
gaku-0.0.3 core/app/models/gaku/school.rb
gaku-0.0.2 core/app/models/gaku/school.rb
gaku_core-0.0.2 app/models/gaku/school.rb
gaku-0.0.1 core/app/models/gaku/school.rb
gaku_core-0.0.1 app/models/gaku/school.rb