読者です 読者をやめる 読者になる 読者になる

Rails3で間違えてgenerate controllerしたものを取り消したい場合

引き続き基本的なことから。
現在、Railsを使って静的なページ作成(Respiraという個人プロジェクト用)
を始めましたが、誤って、generate controllerを実行してしまい、
この結果を取り消したいケースが発生しました。

 rails generate controller Respiras home about webapp contact

上記コマンドを実行した結果、

      create  app/controllers/respiras_controller.rb
       route  get "respiras/contact"
       route  get "respiras/webapp"
       route  get "respiras/about"
       route  get "respiras/home"
      invoke  erb
      create    app/views/respiras
      create    app/views/respiras/home.html.erb
      create    app/views/respiras/about.html.erb
      create    app/views/respiras/webapp.html.erb
      create    app/views/respiras/contact.html.erb
      invoke  test_unit
      create    test/functional/respiras_controller_test.rb
      invoke  helper
      create    app/helpers/respiras_helper.rb
      invoke    test_unit
      create      test/unit/helpers/respiras_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/respiras.js.coffee
      invoke    scss
      create      app/assets/stylesheets/respiras.css.scss

コントローラーはもちろん、ルートや各種erbファイル等が作成されてしまいます。

やり直す場合は、前出のコマンドのgenerateをdestroyに変更すれば良いです。

 rails destroy controller Respiras home about web app contact

コマンドの実行結果は、

      remove  app/controllers/respiras_controller.rb
       route  get "respiras/contact"
       route  get "respiras/webapp"
       route  get "respiras/about"
       route  get "respiras/home"
      invoke  erb
      remove    app/views/respiras
      remove    app/views/respiras/home.html.erb
      remove    app/views/respiras/about.html.erb
      remove    app/views/respiras/webapp.html.erb
      remove    app/views/respiras/contact.html.erb
      invoke  test_unit
      remove    test/functional/respiras_controller_test.rb
      invoke  helper
      remove    app/helpers/respiras_helper.rb
      invoke    test_unit
      remove      test/unit/helpers/respiras_helper_test.rb
      invoke  assets
      invoke    coffee
      remove      app/assets/javascripts/respiras.js.coffee
      invoke    scss
      remove      app/assets/stylesheets/respiras.css.scss

実行結果から、お分かりの通り、ファイルだけではなく、
ルートも奇麗に元通りです。素晴らしい!