module EdgeRider::PreloadAssociations

Public Instance Methods

preload_associations(*args) click to toggle source
# File lib/edge_rider/preload_associations.rb, line 9
def preload_associations(*args)
  preloader = ActiveRecord::Associations::Preloader

  if preloader.method_defined?(:run) # Rails 3.2 / Rails 4
    preloader.new(*args).run
  elsif preloader.method_defined?(:preload) # Rails 5 to Rails 6.1
    preloader.new.preload(*args)
  else # Rails 7+
    records = args.first
    associations = args.second
    options = args[2] || {}
    preloader.new(records: records, associations: associations, **options).call
  end
end