任何简单的方法来更改模型的名称?

问题描述:

我一直在构建一个应用程序,最近有一个模型书是一个数据库表,并链接到几个模型/控制器。我最近了解到,不是书籍,它需要被称为出版物(只是一个例子)...任何简单的方法来更改模型的名称?

我现在想要更新整个应用程序的数据库和所有提及。有没有一种简单的方法在Rails 3中做到这一点。或者我必须迁移该特定的表(通过版本?)并手动更新整个应用程序中的所有引用?

感谢

+0

你如何做到这一点w/o集表名hack? – AnApprentice 2010-09-20 23:45:09

编辑

您可以继续使用相同的模型,从而保持整个应用程序的引用。只是,由于您的新数据库模式,您必须为特定模型设置表名称。您也可以使用alias_attribute方法,以便您可以继续引用旧的属性名称,即使您更改了列名称例如:

class Book < ActiveRecord::Base 
    set_table_name 'publications' 
    set_primary_key 'id' 
    alias_attribute :id,:publication_id 
end 
+0

谢谢。这是一件很好的事情要知道。鉴于我的应用程序只有几个星期,我没有任何真实的数据,我宁愿不猴子修补它。所以我想这将是100%的手动! – AnApprentice 2010-09-20 18:58:24

不,没有办法自动重命名模型。

我的建议是简单地删除模型并用新名称重新创建它,因为通常比重新创建时生成的所有文件更容易。但请确保您的迁移是正确的!

但是至于代码,你必须这么做。一些文本编辑器可以搜索/替换多个文件,这可能会很方便。