Classe: Mongoid::Association::Referenced::BelongsTo::Binding

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Vinculável
Definido em:
lib/mongoid/association/referenced/belongs_to/binding.rb

Visão geral

classe de vinculação para associações requires_to.

Resumo do atributo de instância

Atributos incluídos do Bindable

#_association, #_base, #_target

Recolhimento do Resumo do método de instância

Métodos incluídos do Bindable

#binding, #initialize

Detalhes do método de instância

#bind_one ➤ Objeto

Vincula o objeto base ao inverso da associação. Isso é para que sejamos referenciados aos próprios objetos reais em ambos os lados.

Este caso define a associação no objeto inverso, bem como o próprio documento.

Exemplos:

Vincule os documentos.

game.person.bind(:continue => true)
game.person = Person.new


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Arquivo 'lib/mongoid/association/referenced/belongs_to/binding.rb', linha 22

def bind_one
  vinculativo fazer
    check_polymorphic_inverses!(_target)
    bind_foreign_key(_base, record_id(_target))

    # definir o tipo inverso (por exemplo, "#{name}_type") para novas associações polimórficas
    se _association.inverse_type && !_base.congelado?
      chave = _association.resolvedor.default_key_for(_target)
      bind_polymorphic_inverse_type(_base, chave)
    end

    se inverso = _association.inverso(_target)
      se set_base_association
        se _base.referenced_many?
          _target.__send__(inverso).push(_base)
        mais
          remove_associated(_target)
          _target.set_relation(inverso, _base)
        end
      end
    end
  end
end

#unbind_one ➤ Objeto

Desvincula o objeto base e o inverso, causados pela definição da referência como nulo.

Exemplos:

Desvincule o documento.

game.person.unbind(:continue => true)
game.person = nil


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Arquivo 'lib/mongoid/association/referenced/belongs_to/binding.rb', linha 52

def unbind_one
  vinculativo fazer
    inverso = _association.inverso(_target)
    bind_foreign_key(_base, nada)
    bind_polymorphic_inverse_type(_base, nada)
    se inverso
      set_base_association
      se _base.referenced_many?
        _target.__send__(inverso).excluir(_base)
      mais
        _target.set_relation(inverso, nada)
      end
    end
  end
end