「レール生成」を元に戻す方法


471

作成したすべてのファイルを削除し、加えた変更をすべてロールバックしたいと思いますが、必ずしもデータベースではなく、構成ファイルに加えます。

routes.rbファイルで削除されたモデル/コントローラーのすべてのリソースマッピングを自動的に削除したいと思います。

回答:


929
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

1
ところで、このコマンドを使用して足場を削除するにはどうすればよいですか?モデルとコントローラーは正常に動作しますが、足場を完全に反転させるにはどうすればよいですか?
マルカミリオン

6
わかりました。多分私は何かを打ち間違えていました。私は走っただけrails destroy scaffold lalalalでうまくいった。
マルカミリオン

38
@marcamillionその余分な 'L'である必要があります。
バラティス

1
次のようなgemインストールに関連するファイルの削除についてはrails generate <gemname>:install
どうでしょう

2
@doug、それは可能ではないと思います。あなたの最善の策は、-fフラグを付けてジェネレータを再実行して、ファイルを強制的に再作成/再編集させることです...次に、どのファイルが作成/変更されたかを確認し、手動でそれらを削除します。
ファビオ・バティスタ

49

-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フラグを付けずにコマンドを再度実行してください。


これが最良の答えだと思います
EmilReñaEnriquez '20

24

rails destroy controller Controller_nameエラーの束を返していました。コントローラーを破壊できるようにするには、routes.rb内の関連するルートを削除する必要がありました。PS私はレール3.1を使用しています


この回答を正解として選択するつもりがない限り、行動を要約しないでください。
Tin Man

11

これは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

ここに画像の説明を入力してください


4

コマンドrails d model/controller/migration ...を使用して生成された変更を破棄または削除するために使用できますrails generate

例えば:

rails g model Home name:string

という名前のモデルを作成homeしますname。そのコマンドから生成されたファイルとコードを削除するには、使用できます

rails d model Home

3

小さな変更を除いて、同じ方法で作成されたすべてのものを破棄できます。コントローラの場合、

rails d controller_name (d stands for destroy)

モデル用

rails d model_name

移行のd(destroy)代わりに置くだけですg(generate)


3

コントローラーを手動で削除したい場合:

コントローラー用 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

3

あなたはあなたを戻すことができます

rails g/generate controller/model/migration xxx

次を使用して出力:

 rails d/destroy controller/model/migration xxx

3

次のような「サンプル」という名前のコントローラを作成したとします。

rails generate controller sample

私はこのコントローラを破壊する必要がある場合は、私がしなければならないすべては、スワップであるgeneratedestroy同様に、

rails destroy controller sample.

世代を逆にしたい場合は、とスワップ generateするだけdestroyです。


3

Railsを使用する場合は、を使用しますrails d controller Users

また、Zeusを使用している場合はを使用しますzeus d controller Users

一方、gitまたはSVNを使用している場合は、コミット番号を使用して変更を元に戻します。これははるかに高速です。


3

rails generate次の方法で元に戻すことができます。

  • モデルの場合: rails destroy MODEL
  • コントローラの場合: rails destroy controller_name

1

それを逆にするには、破壊するだけです。ターミナルアプリケーションを開き、プロジェクトディレクトリに移動して、次のように入力します。

rails destroy model CamelCase
rails destroy controller CamelCase

どこでCamelCaseどんなモデルやコントローラの名前です。モデル、移行、および関連するテストファイルの一部が削除されます。(コマンドを実行すると、結果がターミナルウィンドウに表示されます。)


0

generate asを使用し rails generate appます。したがって、generateステートメントの再生成は、ステートメントを使用して元に戻すことができますdestroy。単に置き換えるgeneratedestroy つまり rails generate apprails destroy app' レールが生成されるときに書き込める____ asレールが破壊される____ `


0

選択したモデルの足場を削除しました:

bin/rails d scaffold <AccessControl> //model name

0

を元に戻す前にrails generate、まず移行ロールバックしてください。

ケース1:足場を元に戻す場合は、次のコマンドを実行します。

rails destroy scaffold MODEL_NAME

ケース2:モデルを元に戻す場合は、次のコマンドを実行します。

rails destroy model MODEL_NAME

ケース3:コントローラーを元に戻す場合は、次のコマンドを実行します。

rails destroy controller CONTROLLER_NAME

注:のd代わりにショートカットを使用することもできますdestroy


0

元に戻すにはrails generate、次を使用しますrails destroy

rails destroy Model

詳細については、「rails destroy」を参照してください。


0

Railsのすべてのバージョンには「破棄」があるため、ジェネレータを使用して(たとえば)「tasks」という名前のスキャフォールドを作成する場合、その生成ステップのすべての変更を破棄するには、次のように入力する必要があります。

rails destroy scaffold Tasks

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.