Classe: Mongoid::Association::Nested::Many

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Construível
Definido em:
lib/mongoid/association/nested/many.rb

Visão geral

classe de construtor usada para executar a atribuição de atributos # accepts_nested_attributes_for em associações muitos-para-n.

Resumo do atributo de instância

Atributos incluídos no Construível

#association, #attributes, #existente, # opções

Recolhimento do Resumo do método de instância

Métodos incluídos do Buildable

#allow_destroy?, #convert_id, #rejeitar?, #update_only?

Detalhes do construtor

#inicializar(associação, atributos, opções = {}) ➤ Muitos

Crie o novo construtor para atributos aninhados em associações de um para muitos.

Exemplos:

Inicialize o construtor.

Many.new(association, attributes, options)

Parâmetros:

  • associação (Mongoid::Association::Relatable)

    Os metadados da associação.

  • attributes (Hash)

    O hash de atributos para tentar definir.

  • opções (Hash) (padrão para: {})

    As opções definidas.



50
51
52
53
54
55
56
57
58
59
60
61
# Arquivo 'lib/mongoid/association/nested/many.rb', linha 50

def inicializar(associação, attributes, opções = {})
  se attributes.respond_to?(:with_indizer_access)
    @attributes = attributes.with_indizer_access.sort fazer |uma, b|
      uma[0].to_i <=> b[0].to_i
    end
  mais
    @attributes = attributes
  end
  @association = associação
  @opções = opções
  @class_name = opções[:class_name] ? opções[:class_name].constanteizar : associação.classe
end

Detalhes do método de instância

#build(principal, opções = {}) ➤ Array

Constrói a associação dependendo dos atributos e das opções passadas para a macro.

Isso tenta executar operações 3 , seja uma atualização da associação existente, uma substituição da associação por um novo documento ou uma remoção da associação.

Exemplos:

Construa os attrs aninhados.

many.build(person)

Parâmetros:

  • principal (Documento)

    O documento principal da associação.

  • opções (Hash) (padrão para: {})

    As opções.

Retorna:

  • (Array)

    Os atributos.



27
28
29
30
31
32
33
34
35
36
37
38
39
# Arquivo 'lib/mongoid/association/nested/many.rb', linha 27

def COMPILAR(principal, opções = {})
  @existente = principal.enviar(associação.name)
  se over_limit?(attributes)
    aumentar Errors::TambémManyNestedAttributeRecords.Novo(existente, opções[:limit])
  end
  attributes.cada fazer |attrs|
    se attrs.is_a?(::Hash)
      process_attributes(principal, attrs.with_indizer_access)
    mais
      process_attributes(principal, attrs[1].with_indizer_access)
    end
  end
end