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?