删除模型和迁移文件rails 4

时间:2014-02-12 01:56:38

标签: ruby-on-rails rails-migrations

我试图在我的rails博客中添加标记模型。但是我意外地生成了一个“Tags.rb”模型而不是“Tag.rb”,在阅读了指南之后,我意识到制作“标签”复数在模型方面是个错误。我使用

回滚了迁移
  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

当我回到模型文件夹时,它仍在那里。 请帮助:)

6 个答案:

答案 0 :(得分:3)

请提供

rails destroy model Tag

答案 1 :(得分:1)

尝试使用标签复数而不使用额外的.rb,例如

rails destroy model Tags

希望这有帮助

答案 2 :(得分:1)

您可以手动删除文件,也可以手动删除“s”。

答案 3 :(得分:1)

试试这个

bundle exec rake db:rollback

然后将您的模型删除为

rails destroy model <model_name>

现在全部删除了。

答案 4 :(得分:0)

您可以删除模型文件夹中迁移文件夹和模型中的迁移文件,然后您可以再次创建所需的新文件。

你必须运行那些命令

rails g model tag

然后迁移数据库

rake db:migrate

答案 5 :(得分:0)

首先,在使用rails generate model生成Rails模型时,请勿将.rb添加到模型名称的末尾。 Rails会自动执行此操作,因此如果您自己添加.rb,则最终会得到名为Tag.rb.rb的模型,该模型无效。

您正在使用“Tags.rb”运行删除生成器。您最初使用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命令,然后手动删除该迁移文件和所有其他文件