Rückgängig Gerüste in Rails
-
12-09-2019 - |
Frage
Gibt es eine Möglichkeit zu ‚rückgängig machen‘, um die Auswirkungen eines Gerüsts Befehl in Rails?
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:
-
rails d scaffold FooBar
-
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
laufenrake 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