class Mongoid::Relations::Binding

Public Instance Methods

bind_from_relational_parent(doc) click to toggle source
# File lib/mongoid-multiple-polymorphic/mongoid/relations/binding.rb, line 23
def bind_from_relational_parent(doc)
  check_inverse!(doc)
  bind_foreign_key(doc, record_id(base))
  bind_polymorphic_type(doc, base.class.name)
  bind_inverse(doc, base)
  bind_inverse_of_field(doc, metadata.name)
end
bind_inverse_of_field(doc, name) click to toggle source

Bind the inverse of field, when in a polymorphic relation.

@api private

@example Bind the inverse of field.

binding.bind_inverse_of_field(doc)

@param [ Document ] doc The document to bind. @param [ String ] name The name of the relation.

@since 3.0.0

# File lib/mongoid-multiple-polymorphic/mongoid/relations/binding.rb, line 15
def bind_inverse_of_field(doc, name)
  if inverse_metadata = metadata.inverse_metadata(doc)
    if setter = inverse_metadata.inverse_of_field_setter
      doc.you_must(setter, name)
    end
  end
end
unbind_from_relational_parent(doc) click to toggle source
# File lib/mongoid-multiple-polymorphic/mongoid/relations/binding.rb, line 31
def unbind_from_relational_parent(doc)
  check_inverse!(doc)
  bind_foreign_key(doc, nil)
  bind_polymorphic_type(doc, nil)
  bind_inverse(doc, nil)
  bind_inverse_of_field(doc, nil)
end