Railsでscaffoldコマンドの効果を「元に戻す」方法はありますか?
24 に答える
まずscaffold
、コマンドによって生成された移行をすでに実行している場合は、最初にロールバックを実行する必要があります。
rake db:rollback
次を使用して足場を作成できます。
rails generate scaffold MyFoo
(または同様の)、およびを使用してそれを破棄/元に戻すことができます
rails destroy scaffold MyFoo
これにより、によって作成されたすべてのファイルが削除されますgenerate
が、手動で行った追加の変更は削除されません。
Rishav Rastogiは正しいです、そしてレール3.0以上でそれは:
レールは足場を生成します..。
レールは足場を破壊します..。
あなたがしたことは何でも元に戻すことができます
rails generate xxx
に
rails destroy xxx
たとえば、これはジェネレータを移行、スキャフォールド、モデルなどに適用します
ジェネレーターが作成するファイルを確認したいだけの場合は、ジェネレーターの--pretendまたは-pオプションを渡すことができます。
最良の方法は:
destroy rake db: rake db:rollback
足場の場合:
rails destroy scaffold Name_of_script
スキャフォールドを生成した場合は、初めてデータベースの移行を確認できます。データベースをクリーンアップするには、それらを破棄する必要があります
rake db:rollback
それから
rails d scaffold
rails d scaffold <scaffoldname>
また、ロールバックまたは特定のバージョンへの移行を元に戻すようにしてください。
足場を生成するには:
rails generate scaffold xyz
足場を元に戻すには:
rails destroy scaffold xyz
Railsは名前を破壊します
rake db:rollback
Railsで足場を生成するために-
rails generate scaffold MODEL_GOES_HERE
Railsの足場を元に戻すために-
rails destroy scaffold MODEL_GOES_HERE
足場も破壊した後、移行もロールバックする必要があります
rails destroy scaffold 'scaffoldname'
rake db:rollback
したがって、レールの足場を元に戻すために従う必要のあるプロセス4.次のようにコマンドを実行します。
rails d scaffold FooBar
rake db:rollback
rake db:migrate
上記のスキャフォールドを作成した後、you_had_run_の場合は?
それでおしまい!
乾杯!
これを使って
rails d scaffold MODEL_NAME
rake db:rollback
最初にロールバックをお勧めします。ターミナルに入力します。
rake db:rollback
破棄スキャフォールドを追加します(「d」は「破棄」を表します)
rails d scaffold name_of_scaffold
コードをお楽しみください。
最初にrakedb:rollbackを実行して移行をロールバックする必要があります。次に、次の方法でスキャフォールドを破棄します。
rails d scaffold foo
すでにrakedb:migrateを実行している場合は、最初にrake db:rollbackを実行してテーブルを破棄する必要があります。その後、次を実行できます。
レールd足場モデル
はい、scaffold
それ自体とそれを融合するすべてのもの。
destroy
コマンドは反対であり、generate
1つを元に戻します。同じ方法で名前を渡すだけでgenerate
、プロジェクトから削除されます。
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
スキャフォールドを生成するには:
rails generate scaffold abc
この足場を元に戻すには:
rails destroy scaffold abc
移行を実行した場合は、ロールバックするだけです
rake db:rollback STEP=1
プロバイダー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[オプション]scaffoldscaffold_name
オプション
g generate
d destroy
もし、するなら
rails g scaffold myFoo
次に、を使用して元に戻します
rails d scaffold MyFoo
スキャフォールドを生成すると、次のファイルが作成されます。
指示: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
このコマンドは、プロジェクトのスキャフォールドによって作成されたすべてのファイルを削除します。
実行するときはいつでもrails g
、実行rails d
(破棄)して生成したものを削除することで元に戻すことができます。すでに実行している場合は、破棄する前rake db:migrate
に実行する必要がありますrake db:rollback
:)
ケース1:このコマンドのみを実行してscaffoldを生成する場合-
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: -のような以下のコマンドですでに(Scaffold and Migration)を実行している場合
rails generate scaffold User name:string address:text
rake db:migrate
次に、最初のロールバック移行コマンドを実行してから、以下のようにスキャフォールドを破棄する必要があります-
rake db:rollback
rails destroy scaffold User name:string address:text
したがって、このようにして、足場を元に戻すことができます。また、ショートカットとして、破棄にdを使用し、生成にgを使用できます。
rails g scaffold MyFoo
生成および
rails d scaffold MyFoo
削除するため