Ruby on rails 如何重新命名ActiveRecord模型,该模型可以自动更改数据库中的表名?
我有一个活动记录模型“car”,我想将此模型的名称更改为“train”,而不更改内部功能,即仅更改名称。此外,表名应更改为“trains” 有没有rails命令可以在onece上实现这一点?或者我必须手动更改类或迁移中的名称?如果我必须手动更改,这会很复杂,因为我还必须更改与我的“汽车”模型相关的其他模型Ruby on rails 如何重新命名ActiveRecord模型,该模型可以自动更改数据库中的表名?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个活动记录模型“car”,我想将此模型的名称更改为“train”,而不更改内部功能,即仅更改名称。此外,表名应更改为“trains” 有没有rails命令可以在onece上实现这一点?或者我必须手动更改类或迁移中的名称?如果我必须手动更改,这会很复杂,因为我还必须更改与我的“汽车”模型相关的其他模型 有什么好的建议吗?我建议如下: 手动将活动记录模型类更改为Train 进行迁移以将数据库表名称从cars更改为trains 进行良好的搜索,将参考资料从汽车更改为火车 如果您经常需要更改数据库
有什么好的建议吗?我建议如下:
如果您经常需要更改数据库表名,那么您可能需要重新考虑以更简洁的方式命名表。像在本例中一样,您可以使用名为vehicles的表,并使用指定类型的“type”字段(例如:car或train) 我想出了以下方法: 1、生成迁移文件:
rails generate migration rename_cars_to_trains
class RenameCarsToTrains < ActiveRecord::Migration
def self.up
rename_table :cars, :trains
end
def self.down
rename_table :trains, :cars
end
end
类重命名carstotrains
rakedb:migrate
如果您有更有效的方法,请告诉我……我使用以下步骤重命名了我的模型 在崇高的文本中:
- 汽车控制器
- 汽车助手
- Model/car.rb
- 测试文件夹中的所有相关文件
如果您使用的是RubyMine,进入模型,右键单击类名>重构并更改名称。RubyMine将重构所有内容,并为数据库创建新的迁移。相应数据库表的名称是什么?是汽车还是火车?Rails遵循ORM映射,所以活动记录模型类应该映射到db表名中。我当前的表是“cars”,我想把它的名称改为“trains”。你的意思是我只需要将模型类名更改为“Train”?是的,这就是我在回答中解释的。我不在乎找到更有效的方法来反对Rails的惯例。从长远来看,你只会伤害自己。只需按照Rails的方式保持类和表名,就可以了。交换第一步和第二步是否明智?在应用程序实际运行时进行迁移,但之后再运行。是否真的要改变数据库名称,而不仅仅是表?@peter,你说得对。只有表名,而不是整个数据库。已更正。这将破坏以前的迁移文件。@MoB假设您的意思是它重命名以前迁移文件中的单词,只需使用任何现代编辑器功能排除目录即可。