module Mongoid::Relations::Eager
Attributes
eager_loaded[RW]
Public Instance Methods
eager_load(docs)
click to toggle source
# File lib/mongoid/relations/eager.rb, line 29 def eager_load(docs) return false unless eager_loadable? preload(criteria.inclusions, docs) self.eager_loaded = true end
eager_load_one(doc)
click to toggle source
# File lib/mongoid/relations/eager.rb, line 20 def eager_load_one(doc) eager_load([doc]) end
eager_loadable?(document = nil)
click to toggle source
# File lib/mongoid/relations/eager.rb, line 24 def eager_loadable?(document = nil) return false if criteria.inclusions.empty? !eager_loaded end
preload(relations, docs)
click to toggle source
# File lib/mongoid/relations/eager.rb, line 35 def preload(relations, docs) relations.group_by do |metadata| metadata.relation end.each do |relation, associations| relation.eager_load_klass.new(associations, docs).run end end
with_eager_loading(document)
click to toggle source
# File lib/mongoid/relations/eager.rb, line 13 def with_eager_loading(document) return nil unless document doc = Factory.from_db(klass, document, criteria.options[:fields]) eager_load_one(doc) doc end