Ran代码生成器:rails生成脚手架帖子标题:string body:text并收到错误消息

时间:2014-04-05 22:11:52

标签: ruby-on-rails ruby database scaffold

当我运行上面的代码生成器时,我收到此错误消息:(我只是一个初学者)

invoke active_record
Another migration is already named create_posts.....
Use --force to remove the old migration file

我在终端窗口输入什么“使用武力”

4 个答案:

答案 0 :(得分:2)

您收到以下错误,因为已在您的rails应用程序中进行了名为create_posts 的迁移。

invoke active_record Another migration is already named create_posts..... Use --force to remove the old migration file

所以,你需要的是首先删除现有的迁移,然后生成脚手架。

rails d migration create_posts 
rails generate scaffold post title:string body:text

您可以使用--force选项

生成脚手架
rails generate scaffold post title:string body:text --force

修改

根据你的评论:

  

我做到了,然后一大堆代码出现了   代码调用调用...存在...相同。

这意味着您已成功为scaffold成功运行Post,并且您正尝试generate the scaffold again

我不确定你为什么这样做但是identical不是错误。只是Rails告诉你,你已经有了一个特定的文件,所以我不再创作了。

答案 1 :(得分:0)

如果您不关心丢失数据库,可以重置数据库:

b rake db:reset

这将重新重新启动所有迁移。但请注意!您的迁移应该能够从一端运行到另一端。因此,如果某些内容与常规rake db:migrate“无效”,那么您应该专门解决​​该问题。

给我一​​个更具描述性的错误,我可以告诉你更多。

答案 2 :(得分:0)

您应该添加其他迁移,以便根据需要更改Post表。 您可以从rails g migration开始,并查看提供的帮助。

如果你想逃脱它,你可以删除创建Post表的迁移(但我想你需要删除数据库)

答案 3 :(得分:0)

第一次生成脚手架后,默认情况下Rails将覆盖现有脚手架。这是为了确保您不会意外地破坏大量工作。

如果您确定要重新生成脚手架并删除可能对任何生成的文件进行的任何更改,请尝试:

rails generate scaffold post title:string body:text --force