2012-07-03 19 views
5

Wiem, że przy normalnych migracjach mogłem zrobić rename_table, ale w mongoid nie jestem pewien, jak postępować.Zmień nazwę modelu na mongoidę

Wszystkie moje modele/relacje/trasy/kontrolery/itd. Zostały zmienione, ale muszę po prostu wiedzieć, jak przenieść same dane.

To jest osadzony dokument embeds_one btw.

UPDATE:

Wygląda po prostu robi:

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

Works. Sound Sane?

Odpowiedz

1

do zmiany nazw wbudowanych docs, można traktować je tak samo jak byś atrybutu i zmienić je za pomocą mniej więcej tak:

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

do zmiany nazw modeli najwyższym poziomie, trzeba uzyskać dostęp do samego sterownika ruby ​​i użyć metody #rename_collection:

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

Aby zobaczyć stara nazwa kolekcji można zrobić coś takiego:

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

+1

NoMethodError: niezdefiniowana metoda 'baza danych” dla Mongoid: Moduł – Hackeron

0

W oparciu o to, co powiedział i dokumentacja wydaje się, należy zrobić to w ten sposób

Model.rename(:old_name, :new_name)