我如何反转“轨道生成”?
即删除它创build的所有文件,并回滚所做的任何更改? 不一定要分贝,但更多的configuration文件。
例如,自动删除在routes.rb文件中删除的模型/控制器的所有资源映射,以及其他可能发生更改的其他位置。
谢谢。
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
这里值得一提的是-p标志(p表示假装)。
如果你把这个添加到命令中,它只会做一个“testing”运行,并告诉你什么文件将被删除而不实际删除它们。
$ 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 destroy controller Controller_name
正在返回一堆错误。 为了能够销毁控制器,我必须删除routes.rb中的相关路由。 PS我正在使用rails 3.1
你使用版本控制(颠覆,混帐,无论)? 只要还原。 如果不是 – 为什么不呢?
这是在轨道中生成或销毁控制器或模型的原型。
rails generate/destroy controller/model [controller/model Name]
例如,如果您需要生成用户控制器
rails generate controller User
要么
rails g controller User
如果要摧毁用户控制器或恢复到上述行动
rails destroy controller User
要么
rails d controller User
您可以使用rails d model/controller/migration ...
来销毁或删除使用rails generate命令生成的更改。
示例: rails g model Home name:string
创build一个名为home
的模型,其中包含属性name
。 要删除从该命令生成的文件和代码,我们可以使用命令rails d model Home
。
要手动删除控制器,万一rails d controller
命令不起作用:
对于控制器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
如果您使用导轨,请使用rails d controller Users
如果你使用宙斯,请使用zeus d controller Users
。 另一方面,如果您使用的是git或SVN,请使用提交编号恢复您的更改。 这要快得多。
为了扭转这种情况,我们只是摧毁它。 打开terminal应用程序并转到项目目录。 然后,input这个:
rails destroy model CamelCase rails destroy controller CamelCase
哪里驼峰是任何模型或控制器的名称。 它将删除模型,迁移和一些相关的testing文件。 (您可以在运行命令后在terminal上看到结果。)
您可以通过以下方式撤销导轨生成:
- 对于Model:
rails destroy MODEL
- 对于控制器:
rails destroy controller_name
你可以使用以下命令恢复你的rails g/generate controller/model/migration xxx
输出:
rails d/destroy controller/model/migration xxx
所有世代的铁轨都会破坏它们,所以,如果你通过发电机创build了一个名为“任务”的脚手架,为了销毁所有的变化,你将不得不input:
rails destroy scaffold Tasks
希望它可以帮助你。
删除选定模型的脚手架
bin/rails d scaffold <AccessControl> //model name
在还原rails generate
之前,请确保先回滚迁移 。
案例1:如果你想恢复脚手架,然后运行这个命令 –
rails destroy scaffold MODEL_NAME
情况2:如果你想恢复模型,然后运行这个命令 –
rails destroy model MODEL_NAME
情况3:如果你想恢复控制器然后运行这个命令 –
rails destroy controller CONTROLLER_NAME
注意:你也可以使用快捷键d
而不是destroy