是否有简单的方法来更改模型的名称?

时间:2010-09-20 16:28:13

标签: ruby-on-rails ruby-on-rails-3

我最近一直在构建一个应用程序,它有一个模型Books,它是一个数据库表,并链接到几个模型/控制器。我最近了解到,它需要被称为出版物(仅仅是一个例子)而不是书籍......

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

由于

2 个答案:

答案 0 :(得分:1)

修改

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

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

答案 1 :(得分:0)

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

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

然而,至于代码,你必须以艰难的方式做到这一点。一些文本编辑器可以搜索/替换多个文件,这可能很方便。