Class: ActiveMongoid::Associations::DocumentRelation::Bindings::In

Inherits:
Binding
  • Object
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

Constructor Details

This class inherits a constructor from ActiveMongoid::Associations::Binding

Instance Method Details

#bind_oneObject



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 = .inverse(target)
        if 
          if base.referenced_many_records?
            target.__send__(inverse).push(base)
          else
            target.set_record_relation(inverse, base)
          end
        end
      end
    end
  end
end

#unbind_oneObject



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 = .inverse(target)
  bind_foreign_key(base, nil)
  bind_polymorphic_inverse_type(base, nil)
  unless _binding?
    _binding do
      if inverse
        
        if base.referenced_many_records?
          target.__send__(inverse).delete(base)
        else
          target.set_record_relation(inverse, nil)
        end
      end
    end
  end
end