aboutsummaryrefslogblamecommitdiffstats
path: root/activerecord/test/models/car.rb
blob: 86149266262a4fc5f8caa07df23b4b0dd5478474 (plain) (tree)
1
2
3
4
5
6
7
8
9

                             
                              
                 
                                                                      

                                                                       
                                                                    
                                                             
 
               
 
                 

                                                             
 
                                             
 

                                                
 
                                                         

                                                                 
   

                   
                                      


                   
                                      
   
# frozen_string_literal: true

class Car < ActiveRecord::Base
  has_many :bulbs
  has_many :all_bulbs, -> { unscope where: :name }, class_name: "Bulb"
  has_many :funky_bulbs, class_name: "FunkyBulb", dependent: :destroy
  has_many :failed_bulbs, class_name: "FailedBulb", dependent: :destroy
  has_many :foo_bulbs, -> { where(name: "foo") }, class_name: "Bulb"
  has_many :awesome_bulbs, -> { awesome }, class_name: "Bulb"

  has_one :bulb

  has_many :tyres
  has_many :engines, dependent: :destroy, inverse_of: :my_car
  has_many :wheels, as: :wheelable, dependent: :destroy

  has_many :price_estimates, as: :estimate_of

  scope :incl_tyres, -> { includes(:tyres) }
  scope :incl_engines, -> { includes(:engines) }

  scope :order_using_new_style,  -> { order("name asc") }

  attribute :wheels_owned_at, :datetime, default: -> { Time.now }
end

class CoolCar < Car
  default_scope { order("name desc") }
end

class FastCar < Car
  default_scope { order("name desc") }
end