web-dev-qa-db-ger.com

Wie stelle ich ein "Rails Generate" um?

alle Dateien löschen und alle vorgenommenen Änderungen rückgängig machen? Nicht unbedingt zur DB, sondern mehr zu den Konfigurationsdateien.

Z.B. Automatisches Löschen aller Ressourcenzuordnungen für das in der Datei routes.rb gelöschte Modell/Controller und an allen anderen Stellen, an denen Änderungen vorgenommen wurden?

Vielen Dank.

432
marcamillion
Rails destroy controller lalala
Rails destroy model yadayada
Rails destroy scaffold hohoho

Rails 3.2 fügt dem Befehl eine neue d-Verknüpfung hinzu, sodass Sie jetzt schreiben können:

Rails d controller lalala
Rails d model yadayada
Rails d scaffold hohoho
869
Fábio Batista

Es ist erwähnenswert, die -p-flagge hier zu erwähnen (p für vorgeben). 

Wenn Sie dies dem Befehl hinzufügen, führt es einfach einen "Testlauf" durch und zeigt Ihnen, welche Dateien gelöscht werden, ohne sie tatsächlich zu löschen.

$ Rails d controller welcome -p

  remove  app/controllers/welcome_controller.rb
  invoke  erb
  remove    app/views/welcome
  invoke  test_unit
  remove    test/controllers/welcome_controller_test.rb
  invoke  helper
  remove    app/helpers/welcome_helper.rb
  invoke    test_unit
  remove      test/helpers/welcome_helper_test.rb
  invoke  assets
  invoke    coffee
  remove      app/assets/javascripts/welcome.js.coffee
  invoke    scss
  remove      app/assets/stylesheets/welcome.css.scss

Wenn Sie damit zufrieden sind, führen Sie den Befehl erneut ohne das Flag -p aus.

40
Maikon

Rails destroy controller Controller_name gab eine Reihe von Fehlern zurück. Um Controller zerstören zu können, musste ich verwandte Routen in routen.rb entfernen. P.S. Ich verwende Rails 3.1

22
Maikel

Verwenden Sie Versionskontrolle (Subversion, Git, was auch immer)? Einfach umdrehen Wenn nicht - warum nicht? !!

12
davmac

Dies ist ein Prototyp zum Erzeugen oder Zerstören eines Controllers oder Modells in Rails.

Rails generate/destroy controller/model [controller/model Name]

zum Beispiel, wenn Sie User Controller generieren müssen 

Rails generate controller User

oder

Rails g controller User

wenn der User Controller zerstört werden soll oder ob die obige Aktion .__ 

Rails destroy controller User

oder

Rails d controller User

enter image description here

10
uma

Sie können Rails d model/controller/migration ... verwenden, um die mit dem Rails-Befehl generierten Änderungen zu löschen oder zu entfernen.

Beispiel: Rails g model Home name:string erstellt ein Modell mit dem Namen home mit dem Attribut name. Um die Dateien und den aus diesem Befehl generierten Code zu entfernen, können Sie den Befehl Rails d model Home verwenden.

4
kishore

So löschen Sie den Controller manuell, falls der Befehl Rails d controller nicht funktioniert:

Für Controller welcome

rm app/controllers/welcome_controller.rb
rm app/views/welcome
rm test/controllers/welcome_controller_test.rb
rm app/helpers/welcome_helper.rb
rm test/helpers/welcome_helper_test.rb
rm app/assets/javascripts/welcome.js.coffee
rm app/assets/stylesheets/welcome.css.scss
3
Patrick_870206

Angenommen, ich habe einen Controller mit dem Namen sample erstellt

Rails generate controller sample

Wenn ich diesen Controller zerstören muss, muss ich nur die generate mit destroy tauschen, wie in 

Rails destroy controller sample.

Wenn Sie die Generierung rückgängig machen wollen, müssen Sie lediglich ' generate ' mit ' destroy '

3
L11

sie können Ihre Rails g/generate controller/model/migration xxx-Ausgabe zurücksetzen, indem Sie Folgendes verwenden:

 Rails d/destroy controller/model/migration xxx
3
user3412661

Sie können alle Dinge, die erstellt wurden, auf die gleiche Art und Weise zerstören.

Rails d controller_name (d stands for destroy)

Für Modell

Rails d model_name

sie fügen einfach d(destroy) anstelle von g(generate) in Ihre Migration ein.

2
Foram Thakral

Wenn Sie Rails verwenden, verwenden Sie Rails d controller Users

und wenn Sie Zeus verwenden, verwenden Sie zeus d controller Users. Wenn Sie dagegen git oder SVN verwenden, setzen Sie Ihre Änderungen mit der Festschreibungsnummer zurück. Das geht viel schneller.

2
Santanu

Sie können die Erzeugung eines Rails auf folgende Weise rückgängig machen:

  • Für Modell: Rails destroy MODEL 
  • Für Controller: Rails destroy controller_name
2
Vipul Lawande

Um das umzukehren, zerstören wir es einfach. Öffnen Sie die Terminalanwendung und wechseln Sie in das Projektverzeichnis. Geben Sie dann Folgendes ein:

Rails destroy model CamelCase
Rails destroy controller CamelCase

Wobei CamelCase ein Name eines Modells oder Controllers ist .. __ Modell, Migration und einige zugehörige Testdateien werden entfernt. (Sie können das Ergebnis in Terminal sehen, nachdem Sie den Befehl ausgeführt haben.) 

1

Alle Generationen von Rails haben eine Vernichtung von ihnen. Wenn Sie also ein (beispielsweise) "Gerüst" genanntes "Tasks" erstellen, müssen Sie Folgendes eingeben:

Rails destroy scaffold Tasks

Ich hoffe es hilft dir.

0
Flautarian

Gerüst für ausgewähltes Modell entfernt

bin/Rails d scaffold <AccessControl> //model name
0
Dinesh Vaitage

um die Erzeugung von Rails rückgängig zu machen, verwenden Sie Rails destroy

Rails destroy Model

https://guides.rubyonrails.org/command_line.html#Rails-destroy

0
purge

Wir verwenden als .__ generieren. Rails generate app. Das Erneuern einer generate-Anweisung kann mit destroy-Anweisung ..__ rückgängig gemacht werden. Ersetzen Sie generate durch destroyRails generate app kann geschrieben werden als Rails destroy app' Rails ____asRails zerstören ____ `

0
Krishnaraj R

Stellen Sie vor dem Zurücksetzen von Rails generate sicher, dass Sie zuerst Rollback der Migration durchführen.

Fall 1: Wenn Sie das Gerüst wiederherstellen möchten, führen Sie diesen Befehl aus -

Rails destroy scaffold MODEL_NAME

Fall 2: Wenn Sie das Modell wiederherstellen möchten, führen Sie diesen Befehl aus -

Rails destroy model MODEL_NAME

Fall 3: Wenn Sie den Controller zurücksetzen möchten, führen Sie diesen Befehl aus -

Rails destroy controller CONTROLLER_NAME

Hinweis: Sie können auch die Verknüpfung d anstelle von destroy verwenden.

0
Manoj Kumar