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

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

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 (Associação)

    Os metadados da associação.

  • attributes (Hash)

    O hash de atributos para tentar definir.

  • opções (Hash)

    As opções definidas.



49
50
51
52
53
54
55
# File 'build/mongoid-8.1/lib/mongoid/association/nested/one.rb', linha 49

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.



9
10
11
# File 'build/mongoid-8.1/lib/mongoid/association/nested/one.rb', linha 9

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:



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'build/mongoid-8.1/lib/mongoid/association/nested/one.rb', linha 25

def COMPILAR(principal)
  Método se rejeitar?(principal, attributes)
  @existente = principal.enviar(associação.name)
  se update?
    attributes.delete_id
    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