2012-07-03 40 views
5

Sé con migraciones normales que podría hacer una tabla de cambio de nombre, pero en mongoid no estoy del todo seguro de cómo proceder.Cambiar el nombre del modelo con mongoid

Tengo todos mis modelos/relaciones/rutas/controladores/etc, todos renombrados, pero solo necesito saber cómo mover los datos.

Este es un documento integrado embeds_one btw.

ACTUALIZACIÓN:

Parece que simplemente haciendo:

Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name } 

Works. ¿Estás sano?

Respuesta

1

Para cambiar el nombre de documentos incrustados, se les trata igual que lo haría un atributo y cambiar su nombre usando algo como esto:

ParentModel.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }

para cambiar el nombre de los modelos de primer nivel, es necesario acceder al controlador de rubí en sí y utilizar el método #rename_collection:

Mongoid.database.rename_collection "old_collection_name", "new_collection_name"

Para ver el nombre de la colección antigua que puede hacer algo como esto:

Mongoid.database.collections.map {|c| c.name}

+1

NoMethodError: undefined método 'base de datos' para Mongoid: Módulo – Hackeron

0

en base a lo que ha dicho y la documentación parece que debe hacerlo de esta manera

Model.rename(:old_name, :new_name) 
Cuestiones relacionadas