我试图在rails博客中添加一个标记模型。但我无意中生成了一个"Tags.rb"模型,而不是"Tag.rb",在阅读了指南后,我意识到在模型中使用"Tag"复数是一个错误。我使用回滚了迁移
rake db:rollback
然后
rails destroy model Tags.rb
这就是我得到的
invoke active_record
remove /home/migration/templates/create_table_migration.rb
remove app/models/tags.rb.rb
invoke test_unit
remove test/models/tags.rb_test.rb
remove test/fixtures/tags.rbs.yml
当我回到模型文件夹时,它仍然在那里。请帮助:)
只需给出
rails destroy model Tag
尝试使用不带额外.rb的复数标记,如
rails destroy model Tags
希望这能帮助
您可以手动删除文件,也可以手动删除"s"s。
尝试这个
bundle exec rake db:rollback
然后删除你的模型作为
rails destroy model <model_name>
现在完全删除。
您可以删除migrate文件夹中的迁移文件和模型文件夹中的模型,然后您可以再次创建您想要的新文件。
你必须运行命令
rails g model tag
然后迁移数据库
rake db:migrate
首先,当使用rails generate model
生成Rails模型时,不要将.rb
添加到模型名称的末尾。Rails会自动做到这一点,所以如果您自己添加.rb
,那么您最终会得到一个名为Tag.rb.rb
的模型,这是无效的。
您正在运行带有"Tags.rb
"的remove生成器。您最初是使用rails generate model Tags.rb
生成模型的吗?如果您这样做了,那么运行rails destroy model Tags.rb
将有望删除所有文件,但由于模型名称无效,它可能无法按预期工作(您的用例超出了生成器的预期用例)。如果最初使用rails generate model Tags
生成模型,那么运行rails destroy model Tags
应该可以。
如果您最初调用了rails generate model Tags.rb
,但运行remove命令不起作用(同样,考虑到Tags.rb
是一个无效的名称,这是可以理解的——如果生成器最初禁止您生成Tags.rb.rb
文件,那就太好了,但您不可能拥有所有文件):
- 如果您有能力销毁数据库并重新运行所有迁移,那么简单的解决方案就是手动删除添加的文件,销毁数据库,然后重新运行所有的迁移。然后可以使用
rails generate model Tag
添加正确的模型 - 如果您负担不起销毁数据库的费用,则需要在迁移文件夹中手动找到有问题的迁移,对该迁移运行down命令,然后手动删除该迁移文件和所有其他文件