def bind
unless _binding?
_binding do
inverse = metadata.inverse(target)
base.you_must(metadata.foreign_key_setter, target.id)
if metadata.inverse_type
base.you_must(metadata.inverse_type_setter, target.class.model_name)
end
if inverse
inverse_metadata = metadata.inverse_metadata(target)
if inverse_metadata != metadata && !inverse_metadata.nil?
base.metadata = inverse_metadata
if base.referenced_many?
target.send(inverse).push(base) unless Mongoid.identity_map_enabled?
else
target.do_or_do_not(metadata.inverse_setter(target), base)
end
end
end
end
end
end