502

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

我想自动删除在 routes.rb 文件中删除的模型/控制器的所有资源映射以及可能已进行更改的其他任何地方?

4

17 回答 17

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

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

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho
于 2010-11-12T03:29:22.267 回答
52

值得一提的是-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标志。

于 2014-12-12T09:44:57.623 回答
24

rails destroy controller Controller_name返回一堆错误。为了能够销毁控制器,我必须删除 routes.rb 中的相关路由。PS我正在使用rails 3.1

于 2011-11-18T15:59:20.897 回答
12

这是在 Rails 中生成或销毁控制器或模型的原型:

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

例如,如果您需要生成用户控制器:

rails generate controller User

或者

rails g controller User

如果要销毁用户控制器或恢复到上述操作,请使用:

rails destroy controller User

或者:

rails d controller User

在此处输入图像描述

于 2014-02-14T10:11:35.647 回答
6

您可以使用rails d model/controller/migration ...该命令来销毁或删除生成的更改rails generate

例如:

rails g model Home name:string

创建一个名为homeattribute的模型name。要删除从该命令生成的文件和代码,我们可以使用

rails d model Home
于 2013-06-07T14:57:49.983 回答
4

如果您使用 Rails,请使用rails d controller Users.

而且,如果您使用 Zeus,请使用zeus d controller Users.

另一方面,如果您使用的是 git 或 SVN,请使用提交号恢复您的更改。这要快得多。

于 2014-07-28T10:25:13.470 回答
3

你可以恢复你的

rails g/generate controller/model/migration xxx

通过使用输出:

 rails d/destroy controller/model/migration xxx
于 2014-03-19T14:15:57.590 回答
3

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

对于控制器welcome

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
于 2015-10-01T19:40:29.850 回答
3

rails generate您可以通过以下方式撤消 a :

  • 对于模型:rails destroy MODEL
  • 对于控制器:rails destroy controller_name
于 2015-11-05T09:28:53.930 回答
3

假设我创建了一个名为“sample”的控制器,例如:

rails generate controller sample

如果我必须销毁这个控制器,我所要做的就是交换generatedestroy

rails destroy controller sample.

如果你想反转生成,你所要做的就是 交换generate.destroy

于 2017-12-22T05:10:22.473 回答
3

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

rails d controller_name (d stands for destroy)

型号

rails d model_name

你只是把d(destroy)而不是g(generate)放在你的迁移中。

于 2019-01-04T06:21:09.303 回答
1

为了扭转这种情况,我们只是摧毁它。打开终端应用程序并转到项目目录,然后键入:

rails destroy model CamelCase
rails destroy controller CamelCase

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

于 2015-08-02T01:55:58.680 回答
1

要反转rails generate,请使用rails destroy

rails destroy Model

有关详细信息,请参阅“ rails destroy”。

于 2018-10-25T12:30:17.053 回答
0

所有版本的 rails 都有一个“销毁”,因此,如果您使用生成器创建(例如)名为“tasks”的脚手架,要销毁该生成步骤的所有更改,您必须键入:

rails destroy scaffold Tasks

希望它可以帮助你。

于 2016-08-05T12:52:48.237 回答
0

在还原之前rails generate,请确保先回滚迁移

案例 1:如果要恢复脚手架,请运行以下命令:

rails destroy scaffold MODEL_NAME

案例 2:如果要还原模型,请运行以下命令:

rails destroy model MODEL_NAME

案例 3:如果要还原控制器,请运行以下命令:

rails destroy controller CONTROLLER_NAME

注意:您也可以使用快捷方式d代替destroy.

于 2017-02-11T06:45:39.023 回答
0

移除所选模型的脚手架:

bin/rails d scaffold <AccessControl> //model name
于 2017-05-22T05:36:12.130 回答
0

我们使用生成作为 rails generate app。所以重新生成任何generate语句都可以使用destroy语句反转。换成 ie generate就可以写成 rails generate ____ rails destroy ____`destroyrails generate apprails destroy app' as

于 2018-01-30T04:09:34.027 回答