Ruby on rails 用mongoid重命名模型

Ruby on rails 用mongoid重命名模型,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,我知道在正常的迁移中,我可以重命名表,但在mongoid中,我根本不知道如何继续 我已经重命名了所有模型/关系/路由/控制器等,但我只需要知道如何移动数据本身 顺便说一句,这是一个嵌入式文档 更新: 看起来很简单: Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name } 工作。听起来很正常?根据您所说的和文档,您似乎应该这样做 Model.rename(:old_

我知道在正常的迁移中,我可以重命名表,但在mongoid中,我根本不知道如何继续

我已经重命名了所有模型/关系/路由/控制器等,但我只需要知道如何移动数据本身

顺便说一句,这是一个嵌入式文档

更新:

看起来很简单:

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

工作。听起来很正常?

根据您所说的和文档,您似乎应该这样做

Model.rename(:old_name, :new_name)

对于重命名嵌入文档,您可以像对待属性一样对待它们,并使用如下方式重命名它们:


ParentModel.all.each{m | m.rename:old|u embedded_association_name,:new|embedded_association_name}

要重命名顶级模型,您需要访问ruby驱动程序本身并使用#rename_集合方法:


Mongoid.database.rename_collection“旧_collection_name”、“新_collection_name”

要查看旧集合名称,可以执行以下操作:


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

有几种方法可以重命名集合。我喜欢用轻便摩托车做这件事()

Mongoid.默认会话[:旧名称]。重命名(:新名称)

这也是查找集合名称的便捷方法


OldModel.collection.name

NoMethodError:Mongoid:Module的未定义方法“database”