diff options
Diffstat (limited to 'activerecord/test/models/parrot.rb')
-rw-r--r-- | activerecord/test/models/parrot.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/test/models/parrot.rb b/activerecord/test/models/parrot.rb new file mode 100644 index 0000000000..3bb5316eca --- /dev/null +++ b/activerecord/test/models/parrot.rb @@ -0,0 +1,36 @@ +# 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 + 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 +end + +class DeadParrot < Parrot + belongs_to :killer, class_name: "Pirate", foreign_key: :killer_id +end |