Sha256: b321fc3d12470bc603a6021a88b910a2902bbe34a1a787b0f952a6c107638fdd
Contents?: true
Size: 785 Bytes
Versions: 8
Compression:
Stored size: 785 Bytes
Contents
# frozen_string_literal: true require "mongoid/association/referenced/eager" module Mongoid module Association # This module defines the eager loading behavior for criteria. module EagerLoadable def eager_loadable? !criteria.inclusions.empty? end def eager_load(docs) docs.tap do |d| if eager_loadable? preload(criteria.inclusions, d) end end end 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 end end end
Version data entries
8 entries across 8 versions & 1 rubygems