Rails6でscaffoldを削除する方法【db:rollbackも解説】

  • 作成日 2021.01.24
  • 更新日 2026.06.11
  • rails
Rails6でscaffoldを削除する方法【db:rollbackも解説】

Rails6でscaffoldによって作成されたファイルやルーティングを削除する方法を解説します。rails destroy scaffoldの使い方、db:rollbackによるマイグレーションの取り消し、削除時の注意点やscaffoldをやり直す手順までサンプル付きでわかりやすく紹介します。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798

削除

ModelやControllerと同じように「destroy」で削除することが可能です。

rails destroy scaffold 名前

ちなみに「model」は以下、

rails destroy model 名前

「Controller」も以下で削除することが可能です。

rails destroy controller 名前

マイグレーション実行済みの場合

すでにrails db:migrateを実行している場合は、先にロールバックを行います。

rails db:rollback

ロールバック後にscaffoldを削除してください。

rails destroy scaffold Post

実行順序に注意する

必ず以下の順番で実行しましょう。

  1. rails db:rollback
  2. rails destroy scaffold モデル名

先にdestroyを実行すると、マイグレーションファイルが削除され、rollbackできなくなる場合があります。

scaffoldを作り直す場合

削除後は、正しい内容で再度scaffoldを作成できます。

rails generate scaffold Post title:string body:text
rails db:migrate

手動で編集したファイルは削除されない

rails destroy scaffoldはgenerateで作成されたファイルのみを削除します。

後から手動で追加・修正したコードについては、自動では元に戻らないため注意してください。

参考リンク