1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/models/parrot.rb
Andres Howard 7b741457e5 Use reflection_class in TableRow for fixtures
With models that use STI, Fixtures now load based
on the refelction class. This allows to resolve the enums
for each specific class instead of just resolving
those of the base class.
2021-11-25 17:44:14 -03:00

37 lines
909 B
Ruby

# frozen_string_literal: true
class Parrot < ActiveRecord::Base
self.inheritance_column = :parrot_sti_class
has_and_belongs_to_many :pirates
has_and_belongs_to_many :treasures
has_many :loots, as: :looter, class_name: "Treasure"
alias_attribute :title, :name
validates_presence_of :name
attribute :cancel_save_from_callback
before_save :cancel_save_callback_method, if: :cancel_save_from_callback
def cancel_save_callback_method
throw(:abort)
end
before_update :increment_updated_count
def increment_updated_count
self.updated_count += 1
end
def self.delete_all(*)
connection.delete("DELETE FROM parrots_pirates")
connection.delete("DELETE FROM parrots_treasures")
super
end
end
class LiveParrot < Parrot
enum breed: { african: 0, australian: 1 }
end
class DeadParrot < Parrot
belongs_to :killer, class_name: "Pirate", foreign_key: :killer_id
end