502

Railsでscaffoldコマンドの効果を「元に戻す」方法はありますか?

4

24 に答える 24

799

まずscaffold、コマンドによって生成された移行をすでに実行している場合は、最初にロールバックを実行する必要があります。

rake db:rollback

次を使用して足場を作成できます。

rails generate scaffold MyFoo 

(または同様の)、およびを使用してそれを破棄/元に戻すことができます

rails destroy scaffold MyFoo

これにより、によって作成されたすべてのファイルが削除されますgenerateが、手動で行った追加の変更は削除されません。

于 2009-06-08T05:05:27.690 に答える
167

Rishav Rastogiは正しいです、そしてレール3.0以上でそれは:

レールは足場を生成します..。
レールは足場を破壊します..。
于 2010-10-05T01:54:56.327 に答える
40

あなたがしたことは何でも元に戻すことができます

rails generate xxx

rails destroy xxx

たとえば、これはジェネレータを移行、スキャフォールド、モデルなどに適用します

于 2011-06-27T09:13:27.203 に答える
13

ジェネレーターが作成するファイルを確認したいだけの場合は、ジェネレーターの--pretendまたは-pオプションを渡すことができます。

于 2010-09-28T22:17:02.213 に答える
10

最良の方法は:

destroy rake db:  rake db:rollback

足場の場合:

rails destroy scaffold Name_of_script
于 2011-09-06T05:40:14.007 に答える
9

スキャフォールドを生成した場合は、初めてデータベースの移行を確認できます。データベースをクリーンアップするには、それらを破棄する必要があります

rake db:rollback

それから

rails d scaffold
于 2013-09-25T02:26:15.040 に答える
8
rails d scaffold <scaffoldname>

また、ロールバックまたは特定のバージョンへの移行を元に戻すようにしてください。

于 2013-11-30T17:14:43.793 に答える
4

足場を生成するには:

rails generate scaffold xyz

足場を元に戻すには:

rails destroy scaffold xyz
于 2014-02-26T10:16:16.733 に答える
4

Railsは名前を破壊します

rake db:rollback
于 2015-07-21T16:14:25.423 に答える
3

Railsで足場を生成するために-

rails generate scaffold MODEL_GOES_HERE

Railsの足場を元に戻すために-

rails destroy scaffold MODEL_GOES_HERE
于 2015-05-07T10:56:50.867 に答える
2

足場も破壊した後、移行もロールバックする必要があります

rails destroy scaffold 'scaffoldname'
rake db:rollback
于 2014-07-16T14:40:14.207 に答える
2

したがって、レールの足場を元に戻すために従う必要のあるプロセス4.次のようにコマンドを実行します。

  1. rails d scaffold FooBar
  2. rake db:rollbackrake db:migrate上記のスキャフォールドを作成した後、you_had_run_の場合は?

それでおしまい!

乾杯!

于 2015-05-20T07:41:58.323 に答える
2

これを使って

rails d scaffold MODEL_NAME

rake db:rollback
于 2015-12-24T13:39:25.640 に答える
2

最初にロールバックをお勧めします。ターミナルに入力します。

rake db:rollback

破棄スキャフォールドを追加します(「d」は「破棄」を表します)

rails d scaffold name_of_scaffold

コードをお楽しみください。

于 2016-05-14T01:02:45.077 に答える
1

最初にrakedb:rollbackを実行して移行をロールバックする必要があります。次に、次の方法でスキャフォールドを破棄します。

rails d scaffold foo
于 2014-03-21T09:46:50.313 に答える
1

すでにrakedb:migrateを実行している場合は、最初にrake db:rollbackを実行してテーブルを破棄する必要があります。その後、次を実行できます。

レールd足場モデル

于 2016-01-13T06:45:05.900 に答える
1

はい、scaffoldそれ自体とそれを融合するすべてのもの。

destroyコマンドは反対であり、generate1つを元に戻します。同じ方法で名前を渡すだけでgenerate、プロジェクトから削除されます。

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
于 2017-01-15T03:58:40.177 に答える
1

スキャフォールドを生成するには:

rails generate scaffold abc

この足場を元に戻すには:

rails destroy scaffold abc

移行を実行した場合は、ロールバックするだけです

rake db:rollback STEP=1
于 2017-04-11T05:07:19.507 に答える
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
于 2017-08-16T07:49:42.413 に答える
1

rails[オプション]scaffoldscaffold_name

オプション

g    generate
d    destroy

もし、するなら

rails g  scaffold myFoo

次に、を使用して元に戻します

rails d scaffold MyFoo
于 2017-09-30T17:01:14.737 に答える
0

スキャフォールドを生成すると、次のファイルが作成されます。

指示: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

このコマンドは、プロジェクトのスキャフォールドによって作成されたすべてのファイルを削除します。

于 2016-09-05T06:46:58.360 に答える
0

実行するときはいつでもrails g、実行rails d(破棄)して生成したものを削除することで元に戻すことができます。すでに実行している場合は、破棄する前rake db:migrateに実行する必要がありますrake db:rollback:)

于 2016-12-23T16:14:39.703 に答える
0

ケース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を使用できます。

于 2017-02-10T17:48:53.713 に答える
0
rails g scaffold MyFoo 

生成および

rails d scaffold MyFoo

削除するため

于 2017-08-08T14:17:31.120 に答える