Module: Mongoid::Association::Embedded::EmbedsMany::Buildable
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
|
|
Defined in: | lib/mongoid/association/embedded/embeds_many/buildable.rb |
Overview
Builder class for embeds_many associations.
Instance Attribute Summary
::Mongoid::Threaded::Lifecycle
- Included
#_assigning | Begin the assignment of attributes. |
#_assigning? | Is the current thread in assigning mode? |
#_binding | Execute a block in binding mode. |
#_binding? | Is the current thread in binding mode? |
#_building | Execute a block in building mode. |
#_building? | Is the current thread in building mode? |
#_creating? | Is the current thread in creating mode? |
#_loading | Execute a block in loading mode. |
#_loading? | Is the current thread in loading mode? |
Instance Method Summary
-
#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.
# 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