类:Mongoid::Association::Embedded::EmbeddedIn::Binding

继承:
对象
  • 对象
显示全部
包括:
Bindable
定义于:
lib/mongoid/association/embedded/embedded_in/bounding.rb

Overview

embedded_in 关联的 Binding对象。

实例属性摘要

Bindable中包含的属性

#_association#_base#_target

实例方法摘要折叠

Bindable中包含的方法

#bounding#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
# File 'lib/mongoid/association/embedded/embedded_in/bounding.rb', line 22

def bind_one
  绑定 do
    check_poly态_inverses!(_target)
    _base._association = _association.inverse_association(_target) 除非 _base._association
    _base.(_target)
    if _base.embedded_many?
      _target.发送(_association.反向(_target)).推动(_base)
    else
      remove_关联(_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
# File 'lib/mongoid/association/embedded/embedded_in/bounding.rb', line 42

def unbind_one
  绑定 do
    if _base.embedded_many?
      _target.发送(_association.反向(_target)).删除(_base)
    else
      try_method(_target, _association.inverse_setter(_target), nil)
    end
  end
end