我想删除它创建的所有文件,并回滚所做的任何更改,但不一定是数据库,而是配置文件。

我想自动删除路由中删除的模型/控制器的所有资源映射。Rb文件和其他地方的变化可能已经作出?


当前回答

你可以摧毁所有以同样方式创造出来的东西,除了一点点改变。 控制器,

rails d controller_name (d stands for destroy)

为模型

rails d model_name

您只是在迁移中使用d(销毁)而不是g(生成)。

其他回答

这里值得一提的是-p标志(“p”代表假装)。

如果你将此添加到命令中,它将简单地执行“测试”运行,并向你显示哪些文件将被删除,而不实际删除它们。

$ rails d controller welcome -p

  remove  app/controllers/welcome_controller.rb
  invoke  erb
  remove    app/views/welcome
  invoke  test_unit
  remove    test/controllers/welcome_controller_test.rb
  invoke  helper
  remove    app/helpers/welcome_helper.rb
  invoke    test_unit
  remove      test/helpers/welcome_helper_test.rb
  invoke  assets
  invoke    coffee
  remove      app/assets/javascripts/welcome.js.coffee
  invoke    scss
  remove      app/assets/stylesheets/welcome.css.scss

如果您对此满意,可以在不带-p标志的情况下再次运行该命令。

你可以恢复你的

rails g/generate controller/model/migration xxx

使用输出:

 rails d/destroy controller/model/migration xxx

在恢复rails生成之前,请确保先回滚迁移。

情况1:如果你想恢复脚手架,那么运行这个命令:

rails destroy scaffold MODEL_NAME

情况2:如果你想恢复模型,那么运行这个命令:

rails destroy model MODEL_NAME

情况3:如果你想恢复控制器,那么运行这个命令:

rails destroy controller CONTROLLER_NAME

注意:你也可以用快捷键d代替destroy。

所有版本的rails都有一个“destroy”,所以-,如果你使用生成器创建了一个名为“tasks”的脚手架,要销毁生成步骤的所有更改,你必须输入:

rails destroy scaffold Tasks

希望对你有所帮助。

如果您希望手动删除控制器:

对于控制器欢迎

rm app/controllers/welcome_controller.rb
rm app/views/welcome
rm test/controllers/welcome_controller_test.rb
rm app/helpers/welcome_helper.rb
rm test/helpers/welcome_helper_test.rb
rm app/assets/javascripts/welcome.js.coffee
rm app/assets/stylesheets/welcome.css.scss