Files
old-roraccounting/app/models/chip.rb
2020-09-04 04:07:43 +03:00

23 lines
775 B
Ruby

class Chip < ApplicationRecord
has_many :base_chip_values, class_name: "ChipValue", foreign_key: "base_chip_id", dependent: :delete_all
has_many :secondary_chip_values, class_name: "ChipValue", foreign_key: "secondary_chip_id", dependent: :delete_all
validates :name, uniqueness: true
validates :name, :symbol, presence: true
after_create :add_chip_values
private
# When new chip(currency) is added, add new record to the chip_values table for every existing chip(currency)
def add_chip_values
Chip.all.each do |chip|
next if chip.name == name
transaction do
ChipValue.new(base_chip: self, secondary_chip: chip, value: 0).save
ChipValue.new(base_chip: chip, secondary_chip: self, value: 0).save
end
end
end
end