Sha256: 0894e70e703628e43b90530024feaddf2df48844a77f0776b2aef418698acb1d

Contents?: true

Size: 582 Bytes

Versions: 1

Compression:

Stored size: 582 Bytes

Contents

module Org
  module Model::SuperJobTitle
    extend ActiveSupport::Concern

    included do
      attribute :grade, :integer
      attribute :name, :string
      attribute :description, :string

      belongs_to :organ, optional: true
      has_many :job_titles, dependent: :destroy

      default_scope -> { order(grade: :asc) }

      after_update_commit :sync_grade_member_departments, if: -> { saved_change_to_grade? }

      acts_as_list column: :grade, scope: :organ_id
    end

    def sync_grade_member_departments
      job_titles.update_all(name: name)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_org-0.0.1 app/models/org/model/super_job_title.rb