Railsでscaffoldコマンドの効果を「元に戻す」方法はありますか?
First、scaffold
コマンドによって生成されたマイグレーションを既に実行している場合は、最初にロールバックを実行する必要があります。
rake db:rollback
足場は、次の方法で作成できます。
Rails generate scaffold MyFoo
(または似たような)、そしてあなたは破壊する/元に戻すことができますそれを使って
Rails destroy scaffold MyFoo
これはgenerate
によって作成されたすべてのファイルを削除しますが、手動で行った追加の変更はありません。
Rishav Rastogiは正しいです。Rails3.0以上では、
レールは足場を生成します...
レールは足場を破壊します...
あなたがしたことは何でも元に戻すことができます
Rails generate xxx
によって
Rails destroy xxx
例えば、これはマイグレーション、足場、モデルなどにジェネレータを適用します。
ジェネレータが作成するファイルを見たいだけなら、generator --pretendまたは-pオプションを渡します。
最善の方法は次のとおりです。
destroy rake db: rake db:rollback
足場の場合:
Rails destroy scaffold Name_of_script
スキャフォールドを生成した場合は、初めてデータベースの移行を確認できます。データベースをクリーンアップするためにそれらを破壊しなければなりません
rake db:rollback
それから
Rails d scaffold
Rails d scaffold <scaffoldname>
また、ロールバックまたは特定のバージョンへの移行を元に戻してください。
レールが名前を破壊する
rake db:rollback
足場を生成するには:
Rails generate scaffold xyz
足場を元に戻すには:
Rails destroy scaffold xyz
Railsで足場を生成するために -
Rails generate scaffold MODEL_GOES_HERE
Railsの元に戻すための足場 -
Rails destroy scaffold MODEL_GOES_HERE
ロールバックを推奨するまず、あなたのターミナルに入力します。
rake db:rollback
破壊足場を追加します( 'd'は 'destroy'を表します)
Rails d scaffold name_of_scaffold
あなたのコードを楽しんでください。
足場も破壊した後もマイグレーションをロールバックする必要があります
Rails destroy scaffold 'scaffoldname'
rake db:rollback
だから、あなたがRails 4で足場を元に戻すためにあなたが従うべきプロセス。
Rails d scaffold FooBar
rake db:rollback
の場合rake db:migrate
?それでおしまい!
乾杯!
Rails [オプション]足場足場名
オプション
g generate
d destroy
もしあなたがそうするなら
Rails g scaffold myFoo
それからそれを使用してそれを元に戻す
Rails d scaffold MyFoo
はい、scaffold
自体とそれを統合するすべてのものです。
destroy
コマンドはgenerate
の逆であり、元に戻します。 generate
と同じ方法で名前を渡すだけで、プロジェクトから削除されます。
Rails generate scaffold posts title:string content:text
Rails destroy scaffold posts title:string content:text
最初にrake dbを実行してマイグレーションをロールバックする必要があります。
Rails d scaffold foo
まずテーブルを破壊するためにrake db:rollbackをする必要があります
既に実行している場合rake db:migrateそして実行することができます
Rails d scaffold Model
gitに基づいて他のソリューションを提供する
新しいプロジェクトを始める
Rails new project_name
cd project_name
gitを初期化する
git init
git commit -m "initial commit"
足場を作成する
Rails g scaffold MyScaffold
rake db:migrate
足場をロールバックする
rake db:rollback
git reset --hard
git clean -f -d
これを使って
Rails d scaffold MODEL_NAME
rake db:rollback
足場を生成するには:
Rails generate scaffold abc
この足場を元に戻すには:
Rails destroy scaffold abc
ロールバックを実行した場合
rake db:rollback STEP=1
Rails g scaffold MyFoo
生成するための
Rails d scaffold MyFoo
取除くため
Rails g
を実行するときはいつでも、生成したものを削除するためにRails d
(destroy)を実行することでそれを元に戻すことができます。既にrake db:migrate
を実行している場合は、破棄する前にrake db:rollback
を実行する必要があります。
ケース1 :スキャフォールドを生成するためにこのコマンドだけを実行した場合 -
Rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - Rails generate scaffold User name:string address:text
しかし今までは、移行用のコマンドを実行していませんでした。
rake db:migrate
その後、あなただけのようにこのコマンドを実行する必要があります -
Rails destroy scaffold User name:string address:text
ケース2 :すでに(足場と移行)を次のようなコマンドで実行している場合 -
Rails generate scaffold User name:string address:text
rake db:migrate
その後、最初のrollback migrationコマンドを実行してから、以下のようにscaffoldを破棄する必要があります -
rake db:rollback
Rails destroy scaffold User name:string address:text
したがって、このようにして、足場を元に戻すことができます。また、destroyにはd、generateにはgをショートカットとして使用できます。
足場を生成すると、次のファイルが作成されます。
コマンド:Rails generate scaffold Game
作成されたファイル
> invoke active_record
> create db/migrate/20160905064128_create_games.rb
> create app/models/game.rb
> invoke test_unit
> create test/models/game_test.rb
> create test/fixtures/games.yml
> invoke resource_route
> route resources :games
> invoke inherited_resources_controller
> create app/controllers/games_controller.rb
> invoke erb
> create app/views/games
> create app/views/games/index.html.erb
> create app/views/games/edit.html.erb
> create app/views/games/show.html.erb
> create app/views/games/new.html.erb
> create app/views/games/_form.html.erb
> invoke test_unit
> create test/controllers/games_controller_test.rb
> invoke helper
> create app/helpers/games_helper.rb
> invoke test_unit
> create test/helpers/games_helper_test.rb
> invoke jbuilder
> create app/views/games/index.json.jbuilder
> create app/views/games/show.json.jbuilder
> invoke assets
> invoke coffee
> create app/assets/javascripts/games.js.coffee
> invoke scss
> create app/assets/stylesheets/games.css.scss
> invoke scss
> create app/assets/stylesheets/scaffolds.css.scss
この後に移行を実行した場合、scaffoldを削除すると移行ファイルも削除され、その移行を元に戻すことができなくなるため、最初に移行をロールバックする必要があります。
移行を実行したとします。
rake db:rollback
そしてその後、このコマンドで足場を安全に取り外すことができます。
Rails d scaffold Game
このコマンドは、プロジェクトの足場によって作成されたすべてのファイルを削除します。