module Mongoid::Association::Constrainable

def convert_polymorphic(object)

def convert_polymorphic(object)
  if object.is_a?(Mongoid::Document)
    object._id
  else
    BSON::ObjectId.mongoize(object)
  end
end

def convert_to_foreign_key(object)

Returns:
  • (Object) - The object cast to the correct type.

Parameters:
  • object (Object) -- The object to convert.

Other tags:
    Example: Convert the object. -
def convert_to_foreign_key(object)
  return convert_polymorphic(object) if polymorphic?
  field = relation_class.fields["_id"]
  if relation_class.using_object_ids?
    BSON::ObjectId.mongoize(object)
  elsif object.is_a?(::Array)
    object.map!{ |obj| field.mongoize(obj) }
  else
    field.mongoize(object)
  end
end