如何反向rails生成'

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

我想自动删除路由中删除的模型/控制器的所有资源映射。Rb文件和其他地方的变化可能已经作出?

231032 次浏览
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

rails destroy controller Controller_name返回了一堆错误。为了能够破坏控制器,我必须删除routes.rb中的相关路由。附注:我使用的是rails 3.1

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

例如:

rails g model Home name:string

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

rails d model Home

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

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

例如,如果你需要生成一个User Controller:

rails generate controller User

rails g controller User

如果你想销毁User控制器或恢复到上面的操作 然后使用:< / p >

rails destroy controller User

或者:

rails d controller User

enter image description here

你可以恢复你的

rails g/generate controller/model/migration xxx

使用输出:

 rails d/destroy controller/model/migration xxx

如果你使用Rails,请使用rails d controller Users

并且,如果你使用Zeus,请使用zeus d controller Users

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

这里值得一提的是-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标志的情况下再次运行该命令。

要扭转这一局面,我们只需摧毁它。打开终端应用程序,进入项目目录,然后键入以下内容:

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

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

对于控制器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 generate:

  • 对于模型:rails destroy MODEL
  • 对于控制器:rails destroy controller_name

所有版本的rails都有一个“destroy”,所以-,如果你使用生成器创建了一个名为“tasks”的脚手架,要销毁生成步骤的所有更改,你必须输入:

rails destroy scaffold Tasks

希望对你有所帮助。

在返回rails generate之前,请确保您先回滚迁移

情况1:如果你想恢复脚手架,那么运行这个命令:

rails destroy scaffold MODEL_NAME

情况2:如果你想恢复模型,那么运行这个命令:

rails destroy model MODEL_NAME

情况3:如果你想恢复控制器,那么运行这个命令:

rails destroy controller CONTROLLER_NAME

注意:你也可以用快捷方式d代替destroy

移除选定模型的脚手架:

bin/rails d scaffold <AccessControl> //model name

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

rails generate controller sample

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

rails destroy controller sample.

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

我们使用generate as rails generate app。 因此,任何generate语句的重新生成都可以使用destroy语句来反转。 只需将generate替换为destroy 例如,rails generate app可以写成rails destroy app' > < /代码rails生成____asrails摧毁____”< / p >

要反转rails generate,使用rails destroy:

rails destroy Model

更多信息见“rails destroy”。

你可以摧毁所有以同样方式创造出来的东西,除了一点点改变。 控制器,< / p >
rails d controller_name (d stands for destroy)

为模型

rails d model_name

你只需在迁移中放入d(destroy)而不是g(generate)