Files
has_aux_table/spec/spec_models.rb
Dylan Knutson a526fb54f1 enums
2025-07-18 21:57:22 +00:00

62 lines
1.0 KiB
Ruby

# typed: strict
# frozen_string_literal: true
class Vehicle < ActiveRecord::Base
include HasAuxTable
belongs_to :vehicle_lot
end
class VehicleLot < ActiveRecord::Base
has_many :vehicles
end
class Car < Vehicle
aux_table :car
has_many :drivers, inverse_of: :car
end
class Boat < Vehicle
aux_table :boat
has_many :passengers, inverse_of: :boat
belongs_to :captain, inverse_of: :boat
end
class Plane < Vehicle
aux_table :plane
enum :engine_type, { turbofan: 0, turboprop: 1, piston: 2, electric: 3 }
end
class Person < ActiveRecord::Base
include HasAuxTable
self.table_name = "people"
end
class Driver < Person
aux_table :driver
belongs_to :car, optional: true
end
class Captain < Person
aux_table :captain
has_one :boat, inverse_of: :captain
end
class Passenger < Person
aux_table :passenger
belongs_to :boat, inverse_of: :passengers
end
module Kitchen
class Utensil < ActiveRecord::Base
include HasAuxTable
end
class Fork < Utensil
aux_table :fork
end
class Spoon < Utensil
aux_table :spoon
end
end