Ran 代码生成器:rails 生成脚手架帖子标题:字符串正文:文本并收到错误消息

Posted

技术标签:

【中文标题】Ran 代码生成器:rails 生成脚手架帖子标题:字符串正文:文本并收到错误消息【英文标题】:Ran code generator: rails generate scaffold post title:string body:text and am getting error message 【发布时间】:2014-05-18 05:26:46 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

您收到以下错误,因为您在您的 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

编辑

根据您的评论:

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

这意味着您已经成功地为Post 运行了一次scaffold,并且您正在尝试generate the scaffold again

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

【讨论】:

@user3502289 请参阅我的回答中的编辑。【参考方案2】:

如果您不介意这样丢失数据库,您可以重置数据库:

b rake db:reset

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

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

【讨论】:

您好,谢谢!我试过了,这就是我得到的:你有 3 个待处理的迁移:20140405194007 CreatePosts 20140405194222 CreateComments 和 20140405195902 CreateComments。我如何摆脱一切,重新开始?感谢您的帮助!哦,然后它说 Run rake db:migrate to update your database and try again.【参考方案3】:

您应该添加其他迁移,以便按照您的意愿更改您的 Post 表。 您可以从 rails g migration 开始并查看所提供的帮助。

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

【讨论】:

如何删除整个数据库并重新开始?我的任务是建立一个博客,所以我做了 $rails new blog,然后不得不运行一些代码生成器..我认为这就是我卡住的地方:我输入 :$rails generate scaffold post title:string body: text 和 $rails 生成脚手架评论 post_id:integer body:text 你可以删除db目录下的development.sqlite3。您也可以删除所有迁移,然后执行生成器命令(rails g scaffold post title:string body:text 等)。然后执行rake db:migrate。稍后,您将了解到您应该编辑迁移而不是删除它们。但现在,开始,我想,搞砸这件事就好了(我一开始就这样做了)。【参考方案4】:

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

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

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

【讨论】:

好的,谢谢。我这样做了,然后出现一大堆代码,其中包含调用...存在...相同的代码行。但是,我又试了 rails generate scaffold... 代码,还是出现了同样的错误。 是的,生成脚手架打印了好几行。当您说出现相同的错误时,我不确定您的意思。您能否发布您正在运行的命令的确切序列以及中间输出,包括错误消息?您可能必须将其添加到您的问题中,因为评论字段不允许使用很多字符。

以上是关于Ran 代码生成器:rails 生成脚手架帖子标题:字符串正文:文本并收到错误消息的主要内容,如果未能解决你的问题,请参考以下文章

覆盖rails 5的控制器测试脚手架

Ruby on Rails URL 格式

在 Rails 中更改脚手架控制器生成器模板

跳过 Rails 中的 JSON 格式生成脚手架

Rails 生成脚手架错误消息

当我尝试生成脚手架时出现 Rails 错误