当我运行上面的代码生成器时,我收到此错误消息:(我只是一个初学者)
invoke active_record
Another migration is already named create_posts.....
Use --force to remove the old migration file
我在终端窗口输入什么“使用武力”
答案 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