Documento de clonación profunda con asociaciones incrustadas

¿Cómo haría una clonación profunda de un documento en MongoDB (mongoid)

He intentado algo como esto;

original = Car.find(old_id)
@car = original.clone
@car._id = BSON::ObjectId.new

Pero después tengo problemas de deserialización de los valores.

¿Cómo puedo hacer un clon profundo con todos los atributos de los documentos, excepto el _id?

Edit: después de seguir el ejemplo de Zachary, tuve algunos problemas con una clase de serialización personalizada para los documentos duplicados.

class OptionHash
  include Mongoid::Fields::Serializable

  # Convert the keys from Strings to Symbols
  def deserialize(object)
    object.symbolize_keys!
  end

  # Convert values into Booleans
  def serialize(object)
    object.each do |key, value|
    object[key] = Boolean::MAPPINGS[value]
  end
end

Object es nulo para documentos duplicados. Car.find (old_id) .attributes de hecho no incluye el campo con la serialización personalizada, ¿por qué es eso y cómo puedo incluirlo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta