How do I reverse a 'rails generate'?
即删除它创建的所有文件并回滚所做的任何更改? 不一定是db,但更多的是配置文件。
例如。 自动删除在routes.rb文件中删除的模型/控制器的所有资源映射以及可能已进行更改的其他任何地方?
谢谢。
1 2 3 | rails destroy controller lalala rails destroy model yadayada rails destroy scaffold hohoho |
Rails 3.2为命令添加了一个新的
1 2 3 | rails d controller lalala rails d model yadayada rails d scaffold hohoho |
值得一提的是-p标志(假装为p)。
如果将其添加到命令中,它将只执行"测试"运行并向您显示将删除哪些文件而不实际删除它们。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ 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标志的情况下再次运行该命令。
你在使用版本控制(subversion,git,等等)吗?只是还原。如果没有 - 为什么不呢?!!
这是生成或销毁rails中的控制器或模型的原型。
1 | rails generate/destroy controller/model [controller/model Name] |
例如,如果您需要生成用户控制器
1 | rails generate controller User |
要么
1 | rails g controller User |
如果想破坏用户控制器或恢复到上面的操作
然后
1 | rails destroy controller User |
要么
1 | rails d controller User |
您可以使用
示例:
您可以使用以下命令恢复
1 | rails d/destroy controller/model/migration xxx |
如果您希望手动删除控制器:
对于控制器
1 2 3 4 5 6 7 | 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 |
假设我创建了一个名为sample的控制器,如as
1 | rails generate controller sample |
如果我必须销毁这个Controller,我所要做的就是将generate与destroy交换,如下所示
1 | rails destroy controller sample. |
如果你想扭转这一代,你所要做的就是将'generate'与'destroy'交换
你可以摧毁所有以相同方式创建的东西,除了小事改变。
对于控制器,
1 | rails d controller_name (d stands for destroy) |
对于模型
1 | rails d model_name |
您只需在迁移中输入
您可以通过以下方式撤消rails生成:
-
对于型号:
rails destroy MODEL -
对于Controller:
rails destroy controller_name
如果使用rails,请使用
如果你使用zeus,请使用
为了扭转这种局面,我们只是摧毁它。打开终端应用程序并转到项目目录。然后,键入:
1 2 | rails destroy model CamelCase rails destroy controller CamelCase |
CamelCase是任何型号或控制器的名称。
它将删除模型,迁移和一些相关的测试文件。 (运行命令后,您可以在终端上看到结果。)
所有代的轨道都有它们的破坏,所以,如果你通过生成器创建一个名为"tasks"的(例如)脚手架,要销毁那个ganerate的所有变化,你必须输入:
1 | rails destroy scaffold Tasks |
希望它能帮到你。
在还原
案例1:如果你想恢复脚手架然后运行这个命令 -
1 | rails destroy scaffold MODEL_NAME |
案例2:如果要还原模型,请运行此命令 -
1 | rails destroy model MODEL_NAME |
案例3:如果要还原控制器,请运行此命令 -
1 | rails destroy controller CONTROLLER_NAME |
注意:您也可以使用快捷键
删除了所选模型的脚手架
1 | bin/rails d scaffold <AccessControl> //model name |
我们使用generate as
因此,使用
只需用
即
反转rails生成,使用rails destroy
1 | rails destroy Model |
https://guides.rubyonrails.org/command_line.html#rails-destroy