클래스: Mongoid::Association::Embedded::EmbeddedIn::Binding

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
바인딩 가능
다음에 정의됨:
lib/mongoid/association/embedded/embedded_in/Binding.rb

개요

embedded_in 연관 관계를 위한 Binding 객체 입니다.

인스턴스 속성 요약

Bindable에 포함된 속성

#_association, #_base, #_target

인스턴스 메서드 요약 접기

Bindable에 포함된 메서드

#Binding, #initialize

인스턴스 메서드 세부 정보

#bind_one객체

기본 객체를 연관 관계의 역방향에 바인딩합니다. 이를 통해 양쪽에 있는 실제 객체 자체를 참조할 수 있습니다.

이 경우에는 문서 자체뿐만 아니라 역방향 객체에 대한 연관 메타데이터도 설정됩니다.

예시:

문서를 바인딩합니다.

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


22
23
24
25
26
27
28
29
30
31
32
33
34
# 파일 'lib/mongoid/association/embedded/embedded_in/Binding.rb', 줄 22

def bind_one
  바인딩 do
    check_polymorphic_inverses!(_target)
    _base._association = _association.inverse_association(_target) 하지 않는 한 _base._association
    _base.부모화(_target)
    만약 _base.embedded_many?
      _target.send(_association.inverse(_target)).push(_base)
    other
      remove_related(_target)
      try_method(_target, _association.inverse_setter(_target), _base)
    end
  end
end

#unbind_one객체

참조를 nil로 설정하여 발생하는 기본 객체 와 역방향 객체의 바인딩을 해제합니다.

예시:

문서 바인딩을 해제합니다.

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


42
43
44
45
46
47
48
49
50
# 파일 'lib/mongoid/association/embedded/embedded_in/Binding.rb', 줄 42

def unbind_one
  바인딩 do
    만약 _base.embedded_many?
      _target.send(_association.inverse(_target)).삭제(_base)
    other
      try_method(_target, _association.inverse_setter(_target), nil)
    end
  end
end