클래스: Mongoid::Association::Referenced::BelongsTo::Binding

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

개요

types_to 연관 관계를 위한 바인딩 클래스입니다.

인스턴스 속성 요약

Bindable에 포함된 속성

#_association, #_base, #_target

인스턴스 메서드 요약 접기

Bindable에 포함된 메서드

#Binding, #initialize

인스턴스 메서드 세부 정보

#bind_one객체

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

이 경우는 문서 자체뿐만 아니라 역방향 객체에 대한 연관 관계도 설정합니다.

예시:

문서를 바인딩합니다.

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
# 파일 'lib/mongoid/association/referenced/belongs_to/Binding.rb', 줄 22

def bind_one
  바인딩 do
    check_polymorphic_inverses!(_target)
    bind_foreign_key(_base, record_id(_target))
    bind_polymorphic_inverse_type(_base, _target.클래스.이름)
    만약 inverse = _association.inverse(_target)
      만약 set_base_association
        만약 _base.reference_many?
          _target.__send__(inverse).push(_base)
        other
          remove_related(_target)
          _target.set_relation(inverse, _base)
        end
      end
    end
  end
end

#unbind_one객체

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

예시:

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

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


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 파일 'lib/mongoid/association/referenced/belongs_to/Binding.rb', 줄 46

def unbind_one
  바인딩 do
    inverse = _association.inverse(_target)
    bind_foreign_key(_base, nil)
    bind_polymorphic_inverse_type(_base, nil)
    만약 inverse
      set_base_association
      만약 _base.reference_many?
        _target.__send__(inverse).삭제(_base)
      other
        _target.set_relation(inverse, nil)
      end
    end
  end
end