Frage

Gibt es eine Möglichkeit zu ‚rückgängig machen‘, um die Auswirkungen eines Gerüsts Befehl in Rails?

War es hilfreich?

Lösung

Erste , wenn Sie bereits die Wanderungen durch den scaffold Befehl erzeugt ausgeführt haben, müssen Sie zunächst ein Rollback durchzuführen.

rake db:rollback

Sie können erstellen Gerüst mit:

rails generate scaffold MyFoo 

(oder ähnlich) und Sie können zerstören / Undo es mit

rails destroy scaffold MyFoo

Das löscht alle Dateien, die von generate erstellt, aber keine zusätzlichen Änderungen, die Sie manuell vorgenommen haben.

Andere Tipps

Rishav Rastogi ist richtig, und mit Schienen 3.0 oder höher ist sein:

rails generate scaffold ...
rails destroy scaffold ...

Sie können rückgängig gemacht werden, was Sie getan haben mit

rails generate xxx

Mit dem

rails destroy xxx

Zum Beispiel gilt diese Generatoren Migration, Gerüst, Modell ... etc

Wenn Sie nur die Dateien sehen möchten, einen Generator erstellen Sie den Generator --pretend oder Option -p passieren kann.

Der beste Weg ist:

destroy rake db:  rake db:rollback

Für Scaffold:

rails destroy scaffold Name_of_script
rails d scaffold <scaffoldname>

Also, stellen Sie sicher, dass Sie die Migration rückgängig machen Sie entweder durch Rollback oder auf eine bestimmte Version gemacht.

für das erste Mal, können Sie die Datenbankmigration überprüfen, ob Sie Gerüst generieren. Sie müssen sie zerstören Ihre Datenbank zu bereinigen

rake db:rollback

dann

rails d scaffold

Zur Erzeugung Baugerüst:

rails generate scaffold xyz

Um wieder Gerüst:

rails destroy scaffold xyz

Schienen zerstören Namen

rake db:rollback

Für Gerüst in Schienen zu erzeugen -

rails generate scaffold MODEL_GOES_HERE

Für undo Gerüst in Schienen -

rails destroy scaffold MODEL_GOES_HERE

Sie müssen Migrationen rollen wieder nach Gerüst zerstört zu

rails destroy scaffold 'scaffoldname'
rake db:rollback

So, Prozess sollten Sie folgen rückgängig zu machen Baugerüst in Schienen 4. Führen Sie Befehl wie folgt:

  1. rails d scaffold FooBar
  2. rake db:rollback wenn you_had_run_rake db:migrate nach dem Erstellen oben Gerüst?

Das ist es!

Cheers!

Empfehlung Rollback Zuerst geben Sie in Ihrem Terminal entfernt.

rake db:rollback

Fügen Sie zerstören Gerüst (das 'd' steht für 'zerstören')

rails d scaffold name_of_scaffold

Genießen Sie Ihren Code.

verwenden diese

rails d scaffold MODEL_NAME

rake db:rollback

Zuerst haben Sie die rake db zu tun: Rollback für zerstören die Tabelle
wenn Sie bereits rake db ausgeführt haben: wandern und dann können Sie führen

Schienen d Gerüst Modell

müssen Sie die Migration rückgängig zu machen ersten rake db, indem Sie: Rollback falls vorhanden Und dann zerstören das Gerüst durch

rails d scaffold foo

Ja, die scaffold selbst und all die Dinge, die es amalgamieren.

Der destroy Befehl ist das Gegenteil von generate und wird eine rückgängig gemacht werden. geben sie einfach den Namen auf die gleiche Weise mit generate tat und es wird aus dem Projekt ausgewaschen werden:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text

, um das Gerüst zu erzeugen:

rails generate scaffold abc

Dieses Gerüst Um wieder:

rails destroy scaffold abc

Wenn Sie die Migration ausgeführt haben es Rollback nur

rake db:rollback STEP=1

Anbieter eine andere Lösung auf Basis von git

Sie ein neues Projekt starten

rails new project_name
cd project_name

initialisieren git

git init
git commit -m "initial commit"

ein Gerüst erstellen

rails g scaffold MyScaffold
rake db:migrate

Rollback das Gerüst

rake db:rollback
git reset --hard
git clean -f -d
  

Schienen [Option] Gerüst scaffold_name

Option

g    generate
d    destroy

Wenn Sie das tun

rails g  scaffold myFoo

Dann ist es umgekehrt wieder mit

rails d scaffold MyFoo

Wenn wir Gerüst erzeugen, werden folgende Dateien erstellt werden:

Befehl: rails generate scaffold Game

Dateien erstellt:

>       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

Wenn wir die Migration nach diesem Lauf haben, dann müssen wir zunächst als das Löschen von Gerüst der Migration Rollback wird die Migrationsdatei entfernen, und wir werden nicht in der Lage, dass die Migration zurückzukehren.

Incase haben wir die Migration ausgeführt wird:

rake db:rollback

und danach können wir sicher das Gerüst dieses commad entfernen.

rails d scaffold Game

Dieser Befehl entfernen Sie alle Dateien, die von dem Gerüst in Ihrem Projekt erstellt.

Jedes Mal, wenn Sie rails g ausführen, können Sie es rückgängig machen, indem rails d läuft (zerstören) zu entfernen, was Sie erzeugt haben. Wenn Sie bereits rake db:migrate ausgeführt haben, müssen Sie rake db:rollback vor Zerstörung auszuführen:)

Fall 1: Wenn Sie nur diesen Befehl ausführen Gerüst erzeugen -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

Ex - rails generate scaffold User name:string address:text

, aber bis jetzt haben Sie keinen Befehl für die Migration wie

laufen
rake db:migrate

, dann sollten Sie brauchen nur diesen Befehl wie ausgeführt -

rails destroy scaffold User name:string address:text

Fall 2: Wenn Sie bereits laufen (Scaffold und Migration) von unten Befehle wie -

rails generate scaffold User name:string address:text

rake db:migrate 

Dann müssen Sie sollten zuerst Rollbacks Migrationsbefehl dann zerstören Gerüst wie unten ausgeführt -

rake db:rollback

rails destroy scaffold User name:string address:text

So Auf diese Weise können wir Gerüst rückgängig gemacht werden. Auch wir können d für vernichten und g für generieren als Verknüpfung.

rails g scaffold MyFoo 

zum Erzeugen und

rails d scaffold MyFoo

zum Entfernen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top