コントローラの削除
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ファイルは削除しない事が大事です。
初心者以前の問題かも知れませんが、いちいち迷ってしまいました。