2012-07-03 14 views
5

So che con normali migrazioni potrei fare rename_table ma nel mongolo non sono affatto sicuro di come procedere.Rinomina modello con mongolo

Ho tutti i miei modelli/relazioni/percorsi/controller/ecc. Tutti rinominati ma ho solo bisogno di sapere come spostare i dati stessi.

Questo è un documento embeds_one incorporato btw.

UPDATE:

Sembra semplicemente facendo:

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

Works. Sembra sano di mente?

risposta

1

per rinominare documenti incorporati, li trattano proprio come si farebbe con un attributo e rinominare utilizzando qualcosa di simile:

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

per rinominare modelli di livello superiore, è necessario accedere al driver rubino in sé e utilizzare il metodo #rename_collection:

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

di vedere il vecchio nome della raccolta si può fare qualcosa di simile:

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

+1

NoMethodError: undefined metodo di database '' per Mongoid: Modulo – Hackeron

0

in base a quello che hai detto e la documentazione sembra che si dovrebbe fare in questo modo

Model.rename(:old_name, :new_name)