class Mongoid::Relations::Bindings::Referenced::In
Public Instance Methods
bind_one()
click to toggle source
# File lib/mongoid-multiple-polymorphic/mongoid/relations/bindings/referenced/in.rb, line 6 def bind_one binding do check_inverses!(target) bind_foreign_key(base, record_id(target)) bind_polymorphic_inverse_type(base, target.class.name) if inverse = metadata.inverse(target) if set_base_metadata bind_inverse_of_field(base, base.metadata_name) if base.referenced_many? target.__send__(inverse).push(base) else target.set_relation(inverse, base) end end end end end
unbind_one()
click to toggle source
# File lib/mongoid-multiple-polymorphic/mongoid/relations/bindings/referenced/in.rb, line 24 def unbind_one binding do inverse = metadata.inverse(target) if !inverse && metadata.inverse_of_field inverse = base.__send__(metadata.inverse_of_field) end bind_foreign_key(base, nil) bind_polymorphic_inverse_type(base, nil) bind_inverse_of_field(base, nil) if inverse set_base_metadata if base.referenced_many? target.__send__(inverse).delete(base) else target.set_relation(inverse, nil) end end end end