试图创建一个脚手架,但Rails中已经存在迁移

时间:2014-02-06 20:39:14

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.2 ruby-on-rails-4

我尝试创建一个名为Message的新脚手架,并收到此错误消息:

Another migration is already named create_messages

除了更改模型/控制器/视图的名称(我不想做)之外,我该怎么办?

发生这种情况的原因是我有一个名为Message的前一个脚手架,我将其更改为另一个名称(运行迁移以执行此操作以及搜索并替换所有文件名和变量/类名称)。我理解为什么会收到此错误消息,只想知道如何继续前进。

2 个答案:

答案 0 :(得分:0)

快速修复是重命名旧迁移(create_messages)并尝试再次生成脚手架。

但建议使用单个create_messages迁移,以便可以通过destroy scaffold命令安全地删除它。

更新

如果已经有消息模型,则生成Message Scaffold没有意义,因为scaffold会再次使用生成控制器,路由等其他工作来做同样的事情。

答案 1 :(得分:0)

如果您已经有一个名为create_messages的迁移,那么您可能已经拥有了一个Message模型(这意味着您不能将另一个命名为相同)。如果您现在已经决定要在模型上使用脚手架来获取额外的控制器并查看代码,请使用以下名称,其中name是列的名称。

rails g scaffold Message name --skip