即删除它创建的所有文件并回滚所做的任何更改? 不一定要进入数据库,而是更多地进入配置文件。
例如,自动删除在routes.rb文件中删除的模型/控制器以及可能进行了其他更改的所有其他地方的所有资源映射?
谢谢。
#1楼
您可以使用rails d model/controller/migration ...
破坏或删除使用rails generate命令生成的更改。
示例: rails g model Home name:string
用属性name
创建一个名为home
的模型。 要删除从该命令生成的文件和代码,我们可以使用rails d model Home
命令。
#2楼
这是在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
#3楼
您可以使用以下方法还原rails g/generate controller/model/migration xxx
输出:
rails d/destroy controller/model/migration xxx
#4楼
如果使用滑轨,请使用rails d controller Users
如果使用zeus,请使用zeus d controller Users
。 另一方面,如果您使用的是git或SVN,请使用提交号还原所做的更改。 这要快得多。
#5楼
值得一提的是-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标志的命令。
#6楼
为了扭转这种情况,我们只是将其销毁。 打开终端应用程序,然后转到项目目录。 然后,键入:
rails destroy model CamelCase
rails destroy controller CamelCase
其中CamelCase是任何型号或控制器的名称。 它将删除模型,迁移和一些相关的测试文件。 (运行命令后,您可以在终端上看到结果。)
#7楼
如果您希望手动删除控制器:
对于控制器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
#8楼
您可以通过以下方式撤消rails生成:
- 对于模型:
rails destroy MODEL
- 对于控制器:
rails destroy controller_name
#9楼
所有各代的rails都对其进行了销毁,因此,如果由生成器创建一个名为“ tasks”的(例如)支架,要销毁该连接的所有更改,则必须键入:
rails destroy scaffold Tasks
希望对您有帮助。
#10楼
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
#11楼
您是否正在使用版本控制(Subversion,git等)? 只需还原即可。 如果没有-为什么不呢?
#12楼
还原rails generate
之前,请确保首先回滚迁移 。
情况1:如果您想还原支架,请运行以下命令-
rails destroy scaffold MODEL_NAME
情况2:如果您想还原模型,请运行以下命令-
rails destroy model MODEL_NAME
情况3:如果要还原控制器,请运行以下命令-
rails destroy controller CONTROLLER_NAME
注意:您也可以使用快捷方式d
代替destroy
#13楼
删除了所选型号的脚手架
bin/rails d scaffold <AccessControl> //model name
#14楼
假设我创建了一个名为sample的控制器,例如
rails generate controller sample
如果我必须销毁该Controller,那么我要做的就是将destroy替换为generate ,如
rails destroy controller sample.
如果您想逆转世代,您要做的就是将“ generate ”与“ destroy ”交换
#15楼
我们使用generate作为rails generate app
。 因此,可以使用destroy
语句来重新生成任何generate
语句。 只需用destroy
替换generate
,即rails generate app
可以写成rails destroy app'
rails生成____ as
rails destroy ____`
#16楼
反转轨道生成,使用rails destroy
rails destroy Model
https://guides.rubyonrails.org/command_line.html#rails-destroy
#17楼
您可以销毁所有以相同方式创建的事物,只有很少的改变。 对于控制器,
rails d controller_name (d stands for destroy)
对于模型
rails d model_name
您只需在迁移中放入d(destroy)
而不是g(generate)
。
#18楼
rails destroy controller Controller_name
返回了许多错误。 为了能够销毁控制器,我必须在route.rb中删除相关的路由。 PS我正在使用rails 3.1