510 Stimmen

Rückgängig machen Gerüstbau in Rails

Gibt es einen Weg, um die Auswirkungen eines Gerüstbefehls in Rails rückgängig zu machen?

816voto

Rishav Rastogi Punkte 15487

Erstens, wenn Sie die Migrationen bereits ausgeführt haben, die vom scaffold Befehl erstellt wurden, müssen Sie zuerst einen Rollback durchführen.

rake db:rollback

Sie können ein Skelett erstellen mit:

rails generate scaffold MyFoo 

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

rails destroy scaffold MyFoo

Dadurch werden alle Dateien gelöscht, die von generate erstellt wurden, aber nicht etwaige zusätzliche Änderungen, die Sie möglicherweise manuell vorgenommen haben.

13 Stimmen

Vergiss nicht, rake db:rollback auszuführen, bevor du dein Scaffold zerstörst. Dies wird die Tabelle zerstören/löschen, wenn es außer der Migration des Scaffolds keine andere Migration davor gibt.

3 Stimmen

In einigen Fällen gibt es immer noch übrig gebliebene Dateien, die nicht vom Gerüst gelöscht wurden. Überprüfen Sie Ihre Versionskontrolle, z.B. git status und/oder git diff, um zu sehen, ob der Zerstörungsbefehl etwas verpasst hat.

1 Stimmen

Wenn Sie rake db: migrate ausgeführt haben und danach einige andere Migrationen durchgeführt haben, macht es Sinn, eine Migration zu erstellen, um die Tabelle vor dem "Löschen" des Gerüsts zu zerstören. Machen Sie also etwas wie rails g migration DropMyFoos und öffnen Sie dann die Migrationsdatei und fügen Sie den Code zum Löschen der Tabelle hinzu. Führen Sie diese Migration aus und führen Sie dann das destroy scaffold aus.

167voto

Misha Rabinovich Punkte 1689

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

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

8 Stimmen

@femi Die Tabelle wurde mit rake erstellt. Der beste Weg, sie zu entfernen, ist die Ausführung von rake db:rollback bevor du rails destroy scaffold ausführst, oder wenn es nicht das letzte war, das du gemacht hast, führe rake db:migrate:down VERSION=20080906120000 aus. Die Nummer vor dem Namen findest du in db/migrate.

40voto

thekindofme Punkte 3786

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

rails generate xxx

Indem Sie

rails destroy xxx

Zum Beispiel werden damit Generatoren auf Migrationen, Scaffold, Modelle... usw. angewendet

13voto

Sudhanshu Arya Punkte 149

Wenn Sie nur die Dateien sehen möchten, die ein Generator erstellen wird, können Sie dem Generator die Option --pretend oder -p übergeben.

10voto

user917158 Punkte 443

Beste Weg ist :

destroy rake db: rake db:rollback

Für Scaffold:

rails destroy scaffold Name_of_script

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X