Rails在没有先前的导轨g脚手架的情况下破坏脚手架

时间:2017-08-31 06:49:01

标签: ruby-on-rails ruby refactoring scaffold

我正在清理rails应用程序,我必须删除大量文件。 我试图摧毁脚手架用#34; rails destroy scaffold x" 控制台输出似乎删除了很多文件,但实际上并没有。

我不知道" rails g scaffold"用来生成所有,所以我的问题是:可以使用" rails destroy scaffold"如果" rails g scaffold"是不是用来创建那些文件?

2 个答案:

答案 0 :(得分:0)

不确定您是如何建立应用程序的,但如果他们没有使用脚手架,则不会删除任何脚手架。我不确定你对rails有多么有经验,但它包含一个MVC模型。当我进行重构时,我只是删除了模型,视图和控制器,因为我试图摆脱它。此外,为了删除模型并将其从数据库中删除,请遵循此https://stackoverflow.com/a/7106032/7039895。我希望这会有所帮助。

答案 1 :(得分:-1)

我发现destroy scaffold只会生成删除文件的路径,例如:

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

这会生成一些文件所在的路径,如果存在则尝试删除这些文件,如果使用scaffold或手动创建文件,请不要介意。但是如果某些文件不存在,它只会在没有控制台输出建议的情况下跳过这些文件

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