Module: Mongoid::Association::Referenced::HasMany::Buildable
- Included in:
- Mongoid::Association::Referenced::HasMany
- Defined in:
- lib/mongoid/association/referenced/has_many/buildable.rb
Overview
The Builder behavior for has_many associations.
Instance Method Summary collapse
-
#build(base, object, _type = nil, selected_fields = nil) ⇒ Document
This method either takes an _id or an object and queries for the inverse side using the id or sets the object.
Instance Method Details
#build(base, object, _type = nil, selected_fields = nil) ⇒ Document
This method either takes an _id or an object and queries for the inverse side using the id or sets the object.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/mongoid/association/referenced/has_many/buildable.rb', line 21 def build(base, object, _type = nil, selected_fields = nil) return object || [] unless query?(object) # Handle array of hashes from $lookup aggregation if object.is_a?(Array) && object.all? { |o| o.is_a?(Hash) } return object.map do |attrs| Factory.execute_from_db(klass, attrs, nil, selected_fields, execute_callbacks: false) end end return [] if object.is_a?(Array) query_criteria(object, base) end |