如何反转“轨道生成”?

即删除它创建的所有文件并回滚所做的任何更改? 不一定要进入数据库,而是更多地进入配置文件。

例如,自动删除在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值