LoginSignup
85
74

More than 5 years have passed since last update.

railsで使わなかった物の削除で迷う

Last updated at Posted at 2015-07-24

コントローラの削除
rails destroy controller <コントローラ名>

rails destroy controller users
      remove  app/controllers/users_controller.rb
      invoke  erb
      remove    app/views/users
      invoke  rspec
      remove    spec/controllers/users_controller_spec.rb
      invoke  helper
      remove    app/helpers/users_helper.rb
      invoke    rspec
      remove      spec/helpers/users_helper_spec.rb
      invoke  assets
      invoke    coffee
      remove      app/assets/javascripts/users.js.coffee
      invoke    scss
      remove      app/assets/stylesheets/users.css.scss

destroyコマンドは関連ファイルも一緒に削除してくれるので便利ですね。

モデルを削除
rails destroy model <モデル名>

rails destroy model user
      invoke  active_record
      remove    db/migrate/20150629032946_create_users.rb
      remove    app/models/user.rb
      invoke    rspec
      remove      spec/models/user_spec.rb

モデルの削除でdestroyコマンドを実行するとmigrateファイルまで削除されてしまうので、マズいです。
githubを使っているならmigrateファイルのみ戻せると思いますが、手作業で削除するのが一般的なのでしょうか?

migrationでテーブルを削除
マイグレーションファイル作成

rails generate migration < drop_table_マイグレーション名(スネークケース) >

rails generate migration drop_table_users
      invoke  active_record
      create    db/migrate/20150724114439_drop_table_users.rb

マイグレーションファイルのテーブル削除を記述

class DropTableUsers < ActiveRecord::Migration
  def change
    drop_table :users
  end
end

rake db:migrateコマンドを実行すればテーブルが削除されます。
model削除時にmigrateファイルが削除されてしまうとマズいのは、ここでせっかくテーブルを削除するmigrateファイルを作っているのに、modelのmigrateファイルを消してしまうと今度はここのmigrateファイルが宙に浮いた状態になってしまうからです。
というよりもmigrateファイルは削除しない事が大事です。
初心者以前の問題かも知れませんが、いちいち迷ってしまいました。

85
74
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
85
74