Gerüst in Schienen rückgängig machen


493

Gibt es eine Möglichkeit, die Auswirkungen eines Gerüstbefehls in Rails rückgängig zu machen?


4
Schienen zerstören Gerüst xxx
Robin Garg

1
In Rails 5: Generieren Sie ein Gerüst mit: $ Rails generieren ein Gerüst <Name>. Wenn Sie Ihre Dateien migriert haben, führen Sie ein Rollback durch: $ rake db: rollback . Zerstören oder machen Sie das Gerüst rückgängig mit: $ Rails zerstören das Gerüst <Name>. Sie können mehr darüber lesen bei
Nesha Zoric

Antworten:


777

Erstens , wenn Sie bereits die Migration durch die erzeugte ausgeführt haben scaffoldBefehl, müssen Sie zunächst ein Rollback durchführen.

rake db:rollback

Sie können Gerüste erstellen mit:

rails generate scaffold MyFoo 

(oder ähnlich), und Sie können es mit zerstören / rückgängig machen

rails destroy scaffold MyFoo

Dadurch werden alle Dateien gelöscht, die von erstellt wurden generate, jedoch keine zusätzlichen Änderungen, die Sie möglicherweise manuell vorgenommen haben.


11
Vergessen Sie nicht, rake db:rollbackbevor Sie Ihr Gerüst zerstören. Dadurch wird die Tabelle zerstört / gelöscht, wenn außer der vorherigen Migration des Gerüsts keine andere Migration erfolgt.
Yakob Ubaidi

3
In einigen Fällen sind noch Dateien übrig, die nicht vom Gerüst gelöscht wurden. Überprüfen Sie Ihre Versionskontrolle, z. B. git statusund / oder git diff, um festzustellen, ob der Befehl destroy etwas übersehen hat.
Aaron-Codierung

1
Wenn Sie rake db: migrate ausgeführt haben und danach einige andere Migrationen durchgeführt haben, ist es sinnvoll, eine Migration zu erstellen, um die Tabelle zu zerstören, bevor Sie das Gerüst "zerstören". Machen Sie also so etwas wie Rails g Migration DropMyFoos und öffnen Sie dann die Migrationsdatei und fügen Sie Code zum Löschen der Tabelle hinzu. Führen Sie diese Migration aus und führen Sie dann das Zerstörungsgerüst aus.
Vikram Sharma

Denken Sie auch daran, dass der Ansichtsordner für my_foo entfernt wird, auch wenn Sie dort zusätzliche Dateien haben.
Andrew K

167

Rishav Rastogi hat recht und mit Rails 3.0 oder höher ist es:

Schienen erzeugen Gerüst ...
Schienen zerstören Gerüst ...

8
@femi Der Tisch wurde mit Rechen gemacht. Der beste Weg, um es zu entfernen, ist rake db:rollbackvor rails destroy scaffoldoder wenn es nicht der letzte ist, den Sie geharkt haben db:migrate:down VERSION=20080906120000, können Sie die Nummer vor ihrem Namen in db /
migrate finden

40

Sie können alles rückgängig machen, was Sie getan haben

rails generate xxx

Durch

rails destroy xxx

Dies gilt beispielsweise für Generatoren für Migration, Gerüst, Modell usw.


13

Wenn Sie nur die Dateien anzeigen möchten, die ein Generator erstellt, können Sie die Option --pretend oder -p des Generators übergeben.


10

Der beste Weg ist:

destroy rake db:  rake db:rollback

Für das Gerüst:

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

Stellen Sie außerdem sicher, dass Sie die Migration rückgängig machen, die Sie entweder durch Rollback oder auf eine bestimmte Version vorgenommen haben.


8

Zum ersten Mal können Sie Ihre Datenbankmigration überprüfen, wenn Sie ein Gerüst generiert haben. Sie müssen sie zerstören, um Ihre Datenbank zu bereinigen

rake db:rollback

dann

rails d scaffold

4

So erstellen Sie ein Gerüst:

rails generate scaffold xyz

So stellen Sie das Gerüst wieder her:

rails destroy scaffold xyz

4

Schienen zerstören Namen

rake db:rollback

1
Erstes Rollback (wenn Sie migriert sind), dann zerstören Sie das Gerüst
gavit

3

Zur Erzeugung von Gerüsten in Schienen -

rails generate scaffold MODEL_GOES_HERE

Zum Rückgängigmachen des Gerüsts in Schienen -

rails destroy scaffold MODEL_GOES_HERE

2
Auch Verknüpfungen rails gund rails d.
Steve Klein

2

Sie müssen auch Migrationen zurücksetzen, nachdem Sie das Gerüst zerstört haben

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

Gehen Sie also wie folgt vor, um das Gerüst in Schienen rückgängig zu machen. 4. Führen Sie den Befehl wie folgt aus:

  1. rails d scaffold FooBar
  2. rake db:rollbackWenn Sie rake db:migratenach dem Erstellen des obigen Gerüsts einen Lauf hatten ?

Das ist es!

Prost!


2

Rollback empfehlen Geben Sie zunächst Ihr Terminal ein.

rake db:rollback

Zerstörungsgerüst hinzufügen (das 'd' steht für 'zerstören')

rails d scaffold name_of_scaffold

Viel Spaß mit Ihrem Code.


1

benutze das

rails d scaffold MODEL_NAME

rake db:rollback

1

Zuerst müssen Sie den Rake db: rollback
ausführen, um die Tabelle zu zerstören, wenn Sie bereits rake db: migrate ausgeführt haben, und dann können Sie ausführen

Schienen d Gerüst Modell


1

Sie müssen die Migrationen zuerst zurücksetzen, indem Sie Rake db: rollback ausführen, falls vorhanden, und dann das Gerüst durch zerstören

rails d scaffold foo

1

Ja, das scaffoldselbst und all die Dinge, die es zusammenführen.

Der destroyBefehl ist das Gegenteil von generateund macht einen rückgängig. Übergeben Sie es einfach auf die gleiche Weise wie bei generateund es wird aus Ihrem Projekt entfernt:

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

1

So erstellen Sie das Gerüst:

rails generate scaffold abc

So stellen Sie dieses Gerüst wieder her:

rails destroy scaffold abc

Wenn Sie die Migration dafür ausgeführt haben, führen Sie einfach ein Rollback durch

rake db:rollback STEP=1

1

Anbieter eine andere Lösung basierend auf Git

Starten Sie ein neues Projekt

rails new project_name
cd project_name

git initialisieren

git init
git commit -m "initial commit"

ein Gerüst erstellen

rails g scaffold MyScaffold
rake db:migrate

Rollen Sie das Gerüst zurück

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

1

Schienen [Option] Gerüst Gerüstname

Möglichkeit

g    generate
d    destroy

Wenn Sie tun

rails g  scaffold myFoo

Dann kehren Sie es mit zurück

rails d scaffold MyFoo

0

Wenn wir ein Gerüst erstellen, werden folgende Dateien erstellt:

Befehl: rails generate scaffold Game

Erstellte Dateien:

>       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 danach ausgeführt haben, müssen wir zuerst die Migration zurücksetzen, da durch das Löschen des Gerüsts auch die Migrationsdatei entfernt wird und wir diese Migration nicht zurücksetzen können.

Falls wir die Migration ausgeführt haben:

rake db:rollback

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

rails d scaffold Game

Dieser Befehl entfernt alle Dateien, die vom Gerüst in Ihrem Projekt erstellt wurden.


0

Jedes Mal rails g, wenn Sie ausführen , können Sie es umkehren, indem Sie ausführen rails d(zerstören), um das zu entfernen, was Sie generiert haben. Wenn du bereits gelaufen rake db:migratebist, musst du laufen, rake db:rollbackbevor du zerstörst :)


0

Fall 1: Wenn Sie nur diesen Befehl ausführen, um ein Gerüst zu generieren -

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 ausgeführt

rake db:migrate

dann sollten Sie nur diesen Befehl ausführen müssen wie -

rails destroy scaffold User name:string address:text

Fall 2: Wenn Sie bereits (Scaffold and Migration) mit den folgenden Befehlen ausführen:

rails generate scaffold User name:string address:text

rake db:migrate 

Dann sollten Sie zuerst den Rollback-Migrationsbefehl ausführen und dann das Gerüst wie unten beschrieben zerstören müssen -

rake db:rollback

rails destroy scaffold User name:string address:text

Auf diese Weise können wir das Gerüst lösen. Wir können auch d zum Zerstören und g zum Generieren als Verknüpfung verwenden.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.