删除模型和移植文件rails 4



我试图在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文件,那就太好了,但您不可能拥有所有文件):

  1. 如果您有能力销毁数据库并重新运行所有迁移,那么简单的解决方案就是手动删除添加的文件,销毁数据库,然后重新运行所有的迁移。然后可以使用rails generate model Tag添加正确的模型
  2. 如果您负担不起销毁数据库的费用,则需要在迁移文件夹中手动找到有问题的迁移,对该迁移运行down命令,然后手动删除该迁移文件和所有其他文件

最新更新