module Mongoid::Association::EagerLoadable

This module defines the eager loading behavior for criteria.

@since 7.0

Public Instance Methods

eager_load(docs) click to toggle source
# File lib/mongoid/association/eager_loadable.rb, line 18
def eager_load(docs)
  docs.tap do |d|
    if eager_loadable?
      preload(criteria.inclusions, d)
    end
  end
end
eager_loadable?() click to toggle source
# File lib/mongoid/association/eager_loadable.rb, line 14
def eager_loadable?
  !criteria.inclusions.empty?
end
preload(relations, docs) click to toggle source
# File lib/mongoid/association/eager_loadable.rb, line 26
def preload(relations, docs)
  relations.group_by(&:inverse_class_name)
      .values
      .each do |associations|
    associations.group_by(&:relation)
        .each do |relation, association|
      relation.eager_loader(association, docs).run
    end
  end
end