つまり、作成したすべてのファイルを削除し、加えた変更をロールバックしますか。必ずしもDBにではなく、設定ファイルにもっと。
例えば。 routes.rbファイルから削除されたモデル/コントローラのすべてのリソースマッピングを自動的に削除し、それ以外の場所では変更が行われた可能性がありますか。
ありがとう。
Rails destroy controller lalala
Rails destroy model yadayada
Rails destroy scaffold hohoho
Rails 3.2では、コマンドに新しいd
ショートカットが追加されたので、次のように書くことができます。
Rails d controller lalala
Rails d model yadayada
Rails d scaffold hohoho
ここで - pフラグを言及する価値があります(ふりのためにp)。
これをコマンドに追加すると、単に「テスト」を実行して、実際にファイルを削除せずに削除するファイルを表示します。
$ Rails d controller welcome -p
remove app/controllers/welcome_controller.rb
invoke erb
remove app/views/welcome
invoke test_unit
remove test/controllers/welcome_controller_test.rb
invoke helper
remove app/helpers/welcome_helper.rb
invoke test_unit
remove test/helpers/welcome_helper_test.rb
invoke assets
invoke coffee
remove app/assets/javascripts/welcome.js.coffee
invoke scss
remove app/assets/stylesheets/welcome.css.scss
問題なければ、-pフラグを付けずにコマンドを再実行してください。
Rails destroy controller Controller_name
はたくさんのエラーを返していました。コントローラを破壊できるようにするために、routes.rbの関連ルートを削除する必要がありました。 P.S私はRails 3.1を使っています
バージョン管理(Subversion、gitなど)を使用していますか?元に戻すだけです。そうでない場合 - なぜですか?
これはRailsでコントローラやモデルを生成または破壊するためのプロトタイプです。
Rails generate/destroy controller/model [controller/model Name]
たとえば、ユーザーコントローラを生成する必要がある場合
Rails generate controller User
または
Rails g controller User
ユーザーコントローラを破壊するか、上記の操作に戻りたい場合
Rails destroy controller User
または
Rails d controller User
Railsのgenerateコマンドを使用して生成された変更を破棄または削除するには、Rails d model/controller/migration ...
を使用できます。
例:Rails g model Home name:string
は、属性home
を持つname
という名前のモデルを作成します。そのコマンドから生成されたファイルとコードを削除するには、コマンドRails d model Home
を使います。
手動でコントローラを削除したい場合:
コントローラwelcome
の場合
rm app/controllers/welcome_controller.rb
rm app/views/welcome
rm test/controllers/welcome_controller_test.rb
rm app/helpers/welcome_helper.rb
rm test/helpers/welcome_helper_test.rb
rm app/assets/javascripts/welcome.js.coffee
rm app/assets/stylesheets/welcome.css.scss
次のようにsampleという名前のコントローラを作成したとします。
Rails generate controller sample
このControllerを破棄しなければならない場合は、generateをdestroyで置き換えます。
Rails destroy controller sample.
生成を逆にしたい場合は、 'generate'と 'destroy'を入れ替えるだけです。
Rails g/generate controller/model/migration xxx
の出力を元に戻すには、次のようにします。
Rails d/destroy controller/model/migration xxx
ちょっとした変更以外は同じ方法で作成されたすべてのものを破壊することができます。コントローラーの場合
Rails d controller_name (d stands for destroy)
モデル用
Rails d model_name
あなたはあなたのマイグレーションにd(destroy)
の代わりにg(generate)
を入れるだけです。
Railsを使用している場合は、Rails d controller Users
を使用してください。
そしてzeusを使っているなら、zeus d controller Users
を使ってください。一方、gitまたはSVNを使用している場合は、コミット番号で変更を元に戻します。これはずっと速いです。
以下の方法でRailsの生成を元に戻すことができます。
Rails destroy MODEL
Rails destroy controller_name
それを逆にするには、それを破壊するだけです。ターミナルアプリケーションを開き、プロジェクトディレクトリに移動します。それから、これをタイプしてください:
Rails destroy model CamelCase
Rails destroy controller CamelCase
CamelCaseは任意のモデルまたはコントローラの名前です。モデル、移行、および関連するテストファイルの一部が削除されます。 (あなたがコマンドを実行した後にあなたはターミナルで結果を見ることができる。)
Railsのすべての世代はそれらの破棄を持っています。そのため、ジェネレータなどで "tasks"という名前の足場を作成すると、そのガネレートの変更をすべて破棄するには、次のように入力する必要があります。
Rails destroy scaffold Tasks
お役に立てば幸いです。
選択したモデルの足場を削除しました
bin/Rails d scaffold <AccessControl> //model name
railsの生成を逆にするには、Railsを使います。destroy
Rails destroy Model
https://guides.rubyonrails.org/command_line.html#Rails-destroy
GenerateをRails generate app
として使います。そのため、generate
ステートメントを再生成することは、destroy
ステートメントを使用して元に戻すことができます。 generate
をdestroy
に置き換えるだけです。すなわち、Rails generate app
はRails destroy app'
Railsが____as
Railsを生成するように書くことができます。
Rails generate
を元に戻す前に、まずあなたが移行をロールバックすることを確認してください。
ケース1:足場を元に戻したい場合は、このコマンドを実行します -
Rails destroy scaffold MODEL_NAME
ケース2:モデルを元に戻したい場合はこのコマンドを実行します -
Rails destroy model MODEL_NAME
ケース3:あなたがコントローラを元に戻したいなら、このコマンドを実行します -
Rails destroy controller CONTROLLER_NAME
注:d
の代わりにショートカットdestroy
を使用することもできます。