Module: Mongoid::Association::Embedded::EmbedsOne::Buildable

Includes:
Threaded::Lifecycle
Included in:
Mongoid::Association::Embedded::EmbedsOne
Defined in:
lib/mongoid/association/embedded/embeds_one/buildable.rb

Overview

Builder class for embeds_one associations.

Instance Method Summary collapse

Instance Method Details

#build(base, object, _type = nil, selected_fields = nil) ⇒ Document

Builds the document out of the attributes using the provided association metadata on the association. Instantiates through the factory in order to make sure subclasses and allocation are used if fitting.

Examples:

Build the document.

Builder.new(meta, attrs).build


28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/mongoid/association/embedded/embeds_one/buildable.rb', line 28

def build(base, object, _type = nil, selected_fields = nil)
  if object.is_a?(Hash)
    if _loading? && base.persisted?
      Factory.execute_from_db(klass, object, nil, selected_fields, execute_callbacks: false)
    else
      Factory.build(klass, object)
    end
  else
    clear_associated(object)
    object
  end
end