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

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


当前回答

这里值得一提的是-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中生成或销毁控制器或模型的原型:

rails generate/destroy controller/model [controller/model Name]

例如,如果你需要生成一个User Controller:

rails generate controller User

or

rails g controller User

如果你想销毁User控制器或恢复到上面的操作 然后使用:

rails destroy controller User

or:

rails d controller User

要扭转这一局面,我们只需摧毁它。打开终端应用程序,进入项目目录,然后键入以下内容:

rails destroy model CamelCase
rails destroy controller CamelCase

其中CamelCase是任何模型或控制器的名称。 它将删除模型、迁移和一些相关的测试文件。(运行命令后,您可以在终端窗口中看到结果。)

我们使用generate as Rails生成应用程序。 因此,任何generate语句的重新生成都可以使用destroy语句反转。 只需将generate替换为destroy 例如,rails生成应用程序可以写成rails销毁应用程序 Rails生成____asrails破坏____ '

rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho

Rails 3.2为这个命令添加了一个新的快捷方式d,所以现在你可以这样写:

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho

您可以通过以下方式撤销一个rails生成:

对于模型:rails会破坏model 控制器:rails destroy controller_name