Class: ActiveMongoid::Associations::DocumentRelation::Bindings::In
- Inherits:
-
Binding
- Object
- Binding
- ActiveMongoid::Associations::DocumentRelation::Bindings::In
show all
- Defined in:
- lib/active_mongoid/associations/document_relation/bindings/in.rb
Instance Attribute Summary
Attributes inherited from Binding
#__metadata__, #base, #target
Instance Method Summary
collapse
Methods inherited from Binding
#initialize
Instance Method Details
#bind_one ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/active_mongoid/associations/document_relation/bindings/in.rb', line 7
def bind_one
check_inverse!(target)
bind_foreign_key(base, record_id(target))
bind_polymorphic_inverse_type(base, target.class.name)
unless _binding?
_binding do
if inverse = __metadata__.inverse(target)
if set_base_metadata
if base.referenced_many_records?
target.__send__(inverse).push(base)
else
target.set_record_relation(inverse, base)
end
end
end
end
end
end
|
#unbind_one ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/active_mongoid/associations/document_relation/bindings/in.rb', line 26
def unbind_one
inverse = __metadata__.inverse(target)
bind_foreign_key(base, nil)
bind_polymorphic_inverse_type(base, nil)
unless _binding?
_binding do
if inverse
set_base_metadata
if base.referenced_many_records?
target.__send__(inverse).delete(base)
else
target.set_record_relation(inverse, nil)
end
end
end
end
end
|