如何重命名ActiveRecord模型,它可以自动更改数据库中的表名?

我有一个Active Record模型“car”,我想将这个模型的名称更改为“train” 而不改变其中的function,这只会改变名称。 此外,表名应更改为“train”。

是否有任何rails命令可以在onece上执行此操作? 或者我必须手动更改类或迁移中的名称? 如果我必须手动更换,那将会很复杂,因为我还必须更改与我的“汽车”模型有关联的其他模型。

有什么好建议吗?

我会推荐以下内容:

1)将Active Record模型类手动更改为Train

2)进行迁移以将数据库表名称从汽车更改为火车

3)进行良好的搜索以更改从汽车到火车的参考。

如果您不断需要更改数据库表名称,则可能需要重新考虑以更抽象的方式命名表。 就像在这种情况下,您可以拥有一个名为vehicles的表,并使用“type”字段指定类型(例如:汽车或火车)。

我想出了以下方法:

1,生成迁移文件:

rails generate migration rename_cars_to_trains 
  1. 将创建的迁移文件编辑为:

     class RenameCarsToTrains < ActiveRecord::Migration def self.up rename_table :cars, :trains end def self.down rename_table :trains, :cars end end 
  2. rake db:migrate

在这些步骤之后,表名从汽车改为火车,然后,我必须手动更改控制器并查看名称和关联...

如果您有更有效的方式,请告诉我......

我使用以下步骤重命名我的模型

在崇高的文字中:

  1. 按cmd + shift + find并选择区分大小写的搜索(参见左侧按钮)。 它将在整个项目中搜索单词
  2. 搜索并将’Cars’替换为’Trains’
  3. 搜索并将’Car’替换为’Train’
  4. 搜索并将’car’替换为’train’
  5. rails生成迁移rename_cars_to_trains
  6. 手动更改以下文件名

    • cars_controller
    • car_helper
    • 型号/ car.rb.
    • 测试文件夹中的所有相关文件
  7. 更改视图中的文件夹名称:汽车到火车