Classe: Mongoid::Association::Nested::One

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

Visão geral

classe Builder usada para executar a atribuição de atributo #accepts_nested_attributes_for em associações um-para-n.

Recolhimento do 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) ➤ Um

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

Exemplos:

Instancie o construtor.

One.new(association, attributes)

Parâmetros:

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

    Os metadados da associação.

  • attributes (Hash)

    O hash de atributos para tentar definir.

  • opções (Hash)

    As opções definidas.



52
53
54
55
56
57
58
# Arquivo 'lib/mongoid/association/nested/one.rb', linha 52

def inicializar(associação, attributes, opções)
  @attributes = attributes.with_indizer_access
  @association = associação
  @opções = opções
  @class_name = opções[:class_name] ? opções[:class_name].constanteizar : associação.classe
  @destroy = @attributes.excluir(:_destroy)
end

Detalhes do atributo da instância

#destruirObjeto

Retorna o valor da destruição do atributo.



13
14
15
# Arquivo 'lib/mongoid/association/nested/one.rb', linha 13

def destruir
  @destroy
end

Detalhes do método de instância

#build(principal) ➤ Documento

Observação:

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.

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

Exemplos:

Construa um documento aninhado 1-1 .

one.build(person, as: :admin)

Parâmetros:

  • principal (Documento)

    O documento pai .

Retorna:



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

def COMPILAR(principal)
  Método se rejeitar?(principal, attributes)
  @existente = principal.enviar(associação.name)
  se update?
    delete_id(attributes)
    existente.assign_attributes(attributes)
  elsif substituir?
    principal.enviar(associação.setter, Factory.COMPILAR(@class_name, attributes))
  elsif excluir?
    principal.enviar(associação.setter, nada)
  mais
    check_for_id_violation!
  end
end