Module: Mongoid::Association::Embedded::EmbedsMany::Buildable
- Includes:
- Threaded::Lifecycle
- Included in:
- Mongoid::Association::Embedded::EmbedsMany
- Defined in:
- lib/mongoid/association/embedded/embeds_many/buildable.rb
Overview
Builder class for embeds_many associations.
Instance Method Summary collapse
-
#build(base, object, type = nil, selected_fields = nil) ⇒ Array<Document ] The documents.
Builds the document out of the attributes using the provided association metadata.
Instance Method Details
#build(base, object, type = nil, selected_fields = nil) ⇒ Array<Document ] The documents.
Builds the document out of the attributes using the provided association metadata. Instantiates through the factory in order to make sure subclasses and allocation are used if fitting. This case will return many documents.
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mongoid/association/embedded/embeds_many/buildable.rb', line 30 def build(base, object, type = nil, selected_fields = nil) return [] if object.blank? return object if object.first.is_a?(Document) docs = [] object.each do |attrs| if _loading? && base.persisted? docs.push(Factory.execute_from_db(klass, attrs, nil, selected_fields, execute_callbacks: false)) else docs.push(Factory.build(klass, attrs)) end end docs end |