class DeepPreloader

Constants

VERSION
WorklistContext

entries need to be grouped by: child_type - look up in same table child_key - compare the same keys child_search_constraints - where constraints on child lookup such as polymorphic type or association scope.

Public Class Methods

preload(models, spec, lock: nil) click to toggle source
# File lib/deep_preloader.rb, line 9
def self.preload(models, spec, lock: nil)
  return if spec.nil? || models.blank?

  worker = PreloadWorker.new(lock: lock)
  spec = Spec.parse(spec) unless spec.is_a?(AbstractSpec)

  worker.add_associations_from_spec(models, spec)

  worker.run!
  models
end