【问题标题】:Rails destroy scaffold without previous rails g scaffold没有以前的铁轨 g 脚手架,铁轨会破坏脚手架
【发布时间】:2018-02-09 00:38:44
【问题描述】:

我正在清理一个 Rails 应用程序,我必须删除很多文件。 我尝试用“rails destroy scaffold x”破坏脚手架 控制台输出似乎删除了很多文件,但实际上并没有。

我不知道“rails g scaffold”是否用于生成所有文件,所以我的问题是:如果不使用“rails g scaffold”创建文件,是否可以使用“rails destroy scaffold”?

【问题讨论】:

  • 这是您接管的现有 Rails 应用程序吗?
  • 是的,我正在重构

标签: ruby-on-rails ruby refactoring scaffold


【解决方案1】:

我发现破坏脚手架,只会生成删除文件的路径,例如:

rails d scaffold my_directory/something

在控制台中生成下一个输出:

    invoke  active_record
      remove    db/migrate/20170901061811_create_my_directory_somethings.rb
      remove    app/models/my_directory/something.rb
      invoke    test_unit
      remove      test/models/my_directory/something_test.rb
      remove      test/fixtures/my_directory/somethings.yml
      invoke  resource_route
       route    namespace :my_directory do
    resources :somethings
  end
      invoke  scaffold_controller
      remove    app/controllers/my_directory/somethings_controller.rb
      invoke    haml
      remove      app/views/my_directory/somethings
      remove      app/views/my_directory/somethings/index.html.haml
      remove      app/views/my_directory/somethings/edit.html.haml
      remove      app/views/my_directory/somethings/show.html.haml
      remove      app/views/my_directory/somethings/new.html.haml
      remove      app/views/my_directory/somethings/_form.html.haml
      invoke    test_unit
      remove      test/controllers/my_directory/somethings_controller_test.rb
      invoke    helper
      remove      app/helpers/my_directory/somethings_helper.rb
      invoke      test_unit
      invoke    jbuilder
      remove      app/views/my_directory/somethings
      remove      app/views/my_directory/somethings/index.json.jbuilder
      remove      app/views/my_directory/somethings/show.json.jbuilder
      remove      app/views/my_directory/somethings/_my_directory_something.json.jbuilder
      invoke  assets
      invoke    coffee
      remove      app/assets/javascripts/my_directory/somethings.coffee
      invoke    scss
      remove      app/assets/stylesheets/my_directory/somethings.scss
      invoke  scss

这会生成一些文件应该在的路径,并尝试删除该文件(如果存在),不要介意您是使用脚手架创建该文件还是手动创建该文件。但是,如果某些文件不存在,它只会跳过该文件而不在控制台输出中提供建议

在我的应用程序中,文件未在正确的目录中创建,因此 rails d scaffold 无法删除它

【讨论】:

  • 如果我告诉你同样的事情,你为什么要删除我的答案并把你的作为答案?
【解决方案2】:

不确定您被告知有关应用程序是如何构建的,但如果他们不使用脚手架,则无需移除任何脚手架。我不确定您对 Rails 的经验如何,但它由 MVC 模型组成。当我进行重构时,我只是删除了我想要摆脱的模型、视图和控制器。此外,为了删除模型并将其从数据库中删除,请遵循此https://stackoverflow.com/a/7106032/7039895。我希望这会有所帮助。

【讨论】:

  • 我知道,但是这个应用程序有模型、视图和控制器,所以我想删除它,我的问题是:我可以使用“rails d scaffold”删除创建的控制器、视图和模型吗手动,不使用“rails g scaffold”?
  • 据我了解,您不能这样做。如果某些东西没有搭建脚手架,就没有什么可以拆脚手架的。
  • 您可以删除视图并删除控制器,这是您必须在我发送给您的链接中运行该代码的模型,以便您销毁数据库中的表。
猜你喜欢
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多