Jak odwrócić „generowanie szyn”

471

Chcę usunąć wszystkie utworzone przez siebie pliki i przywrócić wprowadzone zmiany, ale niekoniecznie do bazy danych, ale bardziej do plików konfiguracyjnych.

Chciałbym automatycznie usunąć wszystkie mapowania zasobów dla modelu / kontrolera usuniętego w pliku route.rb i wszędzie tam, gdzie mogły zostać wprowadzone zmiany?

marcamillion
źródło

Odpowiedzi:

929
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho

Rails 3.2 dodaje nowy dskrót do polecenia, dzięki czemu możesz teraz pisać:

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho
Fábio Batista
źródło
1
Przy okazji, jak użyć tego polecenia, aby usunąć rusztowanie? Model i kontroler działają dobrze ... ale jak całkowicie odwrócić rusztowanie?
marcamillion
6
Ok, rozgryzłem to. Być może coś źle wpisałem. Właśnie pobiegłem rails destroy scaffold lalalali to zadziałało.
marcamillion,
38
@marcamillion Musi być dodatkowym „L”.
varatis
1
A co z usuwaniem plików związanych z instalacją klejnotów, takich jakrails generate <gemname>:install
doug
2
@doug, nie sądzę, że to możliwe. Najlepszym rozwiązaniem jest ponowne uruchomienie generatora z -fflagą, aby zmusić go do odtworzenia / ponownej edycji plików… Następnie możesz zobaczyć, które pliki utworzył / zmienił i kontynuować ręczne usuwanie ich.
Fábio Batista
49

Warto tu wspomnieć o -pfladze („p” dla udawania ).

Jeśli dodasz to do polecenia, po prostu wykona „test” i pokaże, jakie pliki zostaną usunięte bez ich usuwania.

$ 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

Jeśli jesteś zadowolony, uruchom komendę ponownie bez -pflagi.

Maikon
źródło
Myślę, że to najlepsza odpowiedź
Emil Reña Enriquez,
24

rails destroy controller Controller_namezwracał wiele błędów. Aby móc zniszczyć kontroler, musiałem usunąć powiązane trasy w route.rb. PS Używam szyn 3.1

Maikel
źródło
Nie streszczaj swoich działań, chyba że zamierzasz wybrać tę odpowiedź jako prawidłową.
Tin Man
11

Jest to prototyp generujący lub niszczący kontroler lub model w Railsach:

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

Na przykład, jeśli chcesz wygenerować kontroler użytkownika:

rails generate controller User

lub

rails g controller User

Jeśli chcesz zniszczyć kontroler użytkownika lub przywrócić powyższą akcję, użyj:

rails destroy controller User

lub:

rails d controller User

wprowadź opis zdjęcia tutaj

uma
źródło
4

Możesz użyć rails d model/controller/migration ...do zniszczenia lub usunięcia zmian wygenerowanych za pomocą rails generatepolecenia.

Na przykład:

rails g model Home name:string

tworzy model o nazwie homez atrybutem name. Aby usunąć pliki i kod wygenerowany z tego polecenia, możemy użyć

rails d model Home
Kishore
źródło
3

Możesz zniszczyć wszystkie rzeczy, które zostały stworzone w ten sam sposób, z wyjątkiem drobnych zmian. Dla kontrolera

rails d controller_name (d stands for destroy)

Do modelu

rails d model_name

po prostu umieściłeś d(destroy)zamiast g(generate)w migracji.

Foram Thakral
źródło
3

Jeśli wolisz ręcznie usunąć kontroler:

Dla kontrolera 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
Patrick_870206
źródło
3

Możesz cofnąć swoje

rails g/generate controller/model/migration xxx

dane wyjściowe przy użyciu:

 rails d/destroy controller/model/migration xxx
Blaszany Człowiek
źródło
3

Załóżmy, że utworzyłem kontroler o nazwie „sample”, taki jak:

rails generate controller sample

Jeśli będę musiał zniszczyć ten kontroler, wszystko co musisz zrobić, to zamiana generatez destroy, jak w

rails destroy controller sample.

Jeśli chcesz, aby odwrócić pokolenie, wszystko co musisz zrobić, to zamiana generatez destroy.

L11
źródło
3

Jeśli używasz Railsów, użyj rails d controller Users.

A jeśli używasz Zeusa, użyj zeus d controller Users.

Z drugiej strony, jeśli używasz git lub SVN, przywróć zmiany za pomocą numeru zatwierdzenia. To jest znacznie szybsze.

Santanu
źródło
3

Możesz cofnąć a rails generatena następujące sposoby:

  • Dla modelu: rails destroy MODEL
  • Dla kontrolera: rails destroy controller_name
Vipul Lawande
źródło
1

Aby to odwrócić, po prostu to niszczymy. Otwórz aplikację Terminal i przejdź do katalogu projektu, a następnie wpisz:

rails destroy model CamelCase
rails destroy controller CamelCase

Gdzie CamelCasejest nazwa dowolnego modelu lub kontrolera. Spowoduje to usunięcie modelu, migracji i niektórych powiązanych plików testowych. (Możesz zobaczyć wynik w oknie terminala po uruchomieniu polecenia.)

Chutipong Roobklom
źródło
0

Używamy generować jako rails generate app. Tak więc generateponowne generowanie dowolnej instrukcji można odwrócić za pomocą destroyinstrukcji. Wystarczy wymienić generatez destroy IE rails generate appmożna zapisać jako rails destroy app' szyny generować ____ asszyny zniszczyć ____ `

Krishnaraj R.
źródło
0

Usunięto rusztowanie dla wybranego modelu:

bin/rails d scaffold <AccessControl> //model name
Dinesh Vaitage
źródło
0

Przed cofnięciemrails generate upewnij się, że najpierw przywrócisz migrację .

Przypadek 1: jeśli chcesz cofnąć rusztowanie, uruchom następującą komendę:

rails destroy scaffold MODEL_NAME

Przypadek 2: jeśli chcesz przywrócić model, uruchom następującą komendę:

rails destroy model MODEL_NAME

Przypadek 3: jeśli chcesz przywrócić kontroler, uruchom następującą komendę:

rails destroy controller CONTROLLER_NAME

Uwaga: możesz także użyć skrótu dzamiast destroy.

Manoj Kumar
źródło
0

Aby cofnąć rails generate, użyj rails destroy:

rails destroy Model

Aby rails destroyuzyskać więcej informacji, zobacz „ ”.

oczyścić
źródło
0

Wszystkie wersje szyn mają „zniszczyć”, dlatego jeśli utworzysz (na przykład) rusztowanie o nazwie „zadania” za pomocą generatora, aby zniszczyć wszystkie zmiany tego kroku generowania, musisz wpisać:

rails destroy scaffold Tasks

Mam nadzieję, że to ci pomoże.

Flautarianin
źródło