class Mongoid::Relations::Builders::Embedded::Many

Public Instance Methods

build(type = nil) click to toggle source

Builds the document out of the attributes using the provided metadata on the relation. Instantiates through the factory in order to make sure subclasses and allocation are used if fitting. This case will return many documents.

@example Build the documents.

Builder.new(meta, attrs).build

@param [ String ] type Not used in this context.

@return [ Array<Document ] The documents.

# File lib/mongoid/relations/builders/embedded/many.rb, line 19
def build(type = 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.from_db(klass, attrs))
    else
      docs.push(Factory.build(klass, attrs))
    end
  end
  docs
end