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?

Daniel
quelle
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.

Rishav Rastogi
quelle
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 ...
Mischa Rabinovich
quelle
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.

thekindofme
quelle
13

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

Sudhanshu Arya
quelle
10

Der beste Weg ist:

destroy rake db:  rake db:rollback

Für das Gerüst:

rails destroy scaffold Name_of_script
user917158
quelle
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.

RageCore
quelle
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
Dedennufan
quelle
4

So erstellen Sie ein Gerüst:

rails generate scaffold xyz

So stellen Sie das Gerüst wieder her:

rails destroy scaffold xyz
uma
quelle
4

Schienen zerstören Namen

rake db:rollback
Starbucks
quelle
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
Amit Suroliya
quelle
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
Bhargav Mehta
quelle
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!

Manish Shrivastava
quelle
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.

Chutipong Roobklom
quelle
1

benutze das

rails d scaffold MODEL_NAME

rake db:rollback
Vipin
quelle
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

Shoaib Malik
quelle
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
Manish
quelle
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
JackHasaKeyboard
quelle
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
Nitanshu Verma
quelle
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
Ray Lee
quelle
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
krishnar
quelle
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.

BIlal Khan
quelle
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 :)

Maddie
quelle
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.

Manoj Kumar
quelle
0
rails g scaffold MyFoo 

zum Erzeugen und

rails d scaffold MyFoo

zum Entfernen

Ayaz Ahmad Tarar
quelle