Cofnij rusztowanie w szynach


493

Czy jest jakiś sposób na „cofnięcie” efektów polecenia rusztowania w Railsach?


4
szyny niszczą rusztowanie xxx
Robin Garg

1
W Railsach 5: Generuj rusztowanie za pomocą: $ szyny generują rusztowanie <nazwa>. Jeśli przeprowadziłeś migrację plików, wykonaj wycofanie: $ rake db: rollback . Zniszcz lub cofnij rusztowanie za pomocą: $ szyny zniszcz rusztowanie <nazwa>. Możesz przeczytać więcej na ten temat w
Nesha Zoric

Odpowiedzi:


777

Po pierwsze , jeśli już uruchomiłeś migracje wygenerowane przez scaffoldkomendę, musisz najpierw cofnąć.

rake db:rollback

Rusztowanie można utworzyć za pomocą:

rails generate scaffold MyFoo 

(lub podobny) i możesz go zniszczyć / cofnąć za pomocą

rails destroy scaffold MyFoo

Spowoduje to usunięcie wszystkich plików utworzonych przez użytkownika generate, ale nie będzie żadnych dodatkowych zmian wprowadzonych ręcznie.


11
nie zapomnij, rake db:rollbackzanim zniszczysz rusztowanie. Spowoduje to zniszczenie / upuszczenie tabeli, jeśli nie ma innej migracji oprócz migracji rusztowania przed nią.
Yakob Ubaidi

3
W niektórych przypadkach nadal pozostają pliki, które nie zostały usunięte z rusztowania. Sprawdź kontrolę wersji, np. git statusI / lub git diff, aby sprawdzić, czy polecenie zniszczenia niczego nie przeoczyło.
kodowanie aaron

1
Jeśli uruchomiłeś rake db: migrate przeprowadził później kilka innych migracji, wówczas sensowne jest utworzenie migracji w celu zniszczenia tabeli przed „zniszczeniem” rusztowania. więc zrób coś takiego jak migracja szyn g DropMyFoos, a następnie otwórz plik migracji i dodaj kod do upuszczenia tabeli. Uruchom tę migrację, a następnie uruchom rusztowanie zniszczone.
Vikram Sharma

Pamiętaj również, że usunie folder widoku dla my_foo, nawet jeśli masz tam dodatkowe pliki.
Andrew K

167

Rishav Rastogi ma rację, a przy szynach 3.0 lub nowszych jego:

szyny generują rusztowanie ...
szyny niszczą rusztowanie ...

8
@femi Stół został wykonany przy użyciu prowizji. Najlepszym sposobem na usunięcie jest uruchomiony rake db:rollbackprzed rails destroy scaffoldlub jeśli nie jest to ostatni zrobiłeś grabie db:migrate:down VERSION=20080906120000można znaleźć numer przed jej nazwę w db / migrować
Travis Pessetto

40

Możesz cofnąć wszystko, co zrobiłeś

rails generate xxx

Przez

rails destroy xxx

Na przykład dotyczy to generatorów do migracji, rusztowań, modelu ... itd


13

Jeśli chcesz tylko zobaczyć pliki, które utworzy generator, możesz przekazać generator --pretend lub -p.


10

Najlepszym sposobem jest:

destroy rake db:  rake db:rollback

W przypadku rusztowania:

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

Upewnij się również, że cofnąłeś migrację dokonaną przez wycofanie lub do określonej wersji.


8

po raz pierwszy możesz sprawdzić migrację bazy danych, jeśli masz wygenerowane rusztowanie. musisz je zniszczyć, aby wyczyścić bazę danych

rake db:rollback

następnie

rails d scaffold

4

Aby wygenerować rusztowanie:

rails generate scaffold xyz

Aby cofnąć rusztowanie:

rails destroy scaffold xyz

4

Szyny niszczą nazwę

rake db:rollback

1
najpierw wycofaj (jeśli migrowałeś), a następnie zniszcz rusztowanie
gavit

3

Do generowania rusztowania w szynach -

rails generate scaffold MODEL_GOES_HERE

Do cofnięcia rusztowania w szynach -

rails destroy scaffold MODEL_GOES_HERE

2
Również skróty rails gi rails d.
steve klein

2

musisz także wycofać migracje po zniszczeniu rusztowania

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

Przetwarzaj więc, aby cofnąć rusztowanie w szynach 4. Uruchom polecenie w następujący sposób:

  1. rails d scaffold FooBar
  2. rake db:rollbackjeśli ty miałeś rację rake db:migratepo utworzeniu powyższego rusztowania?

Otóż ​​to!

Twoje zdrowie!


2

Polecaj wycofanie Najpierw wpisz swój Terminal.

rake db:rollback

Dodaj zniszczone rusztowanie („d” oznacza „zniszcz”)

rails d scaffold name_of_scaffold

Życzymy udanego kodu.



1

Najpierw musisz wykonać rake db: rollback, aby zniszczyć tabelę,
jeśli już uruchomiłeś rake db: migruj, a następnie możesz uruchomić

szyny d rusztowania Model


1

musisz najpierw wycofać migracje, wykonując rake db: rollback, jeśli istnieje, a następnie zniszcz rusztowanie

rails d scaffold foo

1

Tak, scaffoldsama i wszystkie rzeczy, które ją łączą.

destroyPolecenie jest przeciwieństwem generatei cofnie jeden. Wystarczy podać nazwę w taki sam sposób, jak generateto zrobiono, a zostanie ona usunięta z projektu:

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

1

Aby wygenerować rusztowanie:

rails generate scaffold abc

Aby cofnąć to rusztowanie:

rails destroy scaffold abc

Jeśli uruchomiłeś migrację, po prostu wycofaj

rake db:rollback STEP=1

1

dostawca innego rozwiązania opartego na git

rozpocząć nowy projekt

rails new project_name
cd project_name

zainicjuj git

git init
git commit -m "initial commit"

stworzyć rusztowanie

rails g scaffold MyScaffold
rake db:migrate

wycofać rusztowanie

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

1

szyny [opcja] rusztowanie nazwa_ rusztowania

Opcja

g    generate
d    destroy

Jeśli zrobisz

rails g  scaffold myFoo

Następnie cofnij za pomocą

rails d scaffold MyFoo

0

Podczas generowania rusztowania zostaną utworzone następujące pliki:

Komenda: rails generate scaffold Game

Utworzone pliki:

>       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

Jeśli po tym uruchomimy migrację, najpierw musimy cofnąć migrację, ponieważ usunięcie rusztowania spowoduje również usunięcie pliku migracji i nie będziemy w stanie przywrócić tej migracji.

W przypadku, gdy uruchomiliśmy migrację:

rake db:rollback

i po tym możemy bezpiecznie usunąć rusztowanie za pomocą tej komendy.

rails d scaffold Game

To polecenie usunie wszystkie pliki utworzone przez rusztowanie w twoim projekcie.


0

W dowolnym momencie możesz rails ggo odwrócić, uruchamiając rails d(niszcząc), aby usunąć to, co wygenerowałeś. Jeśli już uciekłeś rake db:migrate, będziesz musiał biec rake db:rollbackprzed zniszczeniem :)


0

Przypadek 1: Jeśli uruchomisz tylko to polecenie, aby wygenerować rusztowanie -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

Ex - rails generate scaffold User name:string address:text

ale do tej pory nie uruchomiłeś żadnego polecenia migracji jak

rake db:migrate

wtedy powinieneś uruchomić tylko to polecenie, takie jak -

rails destroy scaffold User name:string address:text

Przypadek 2: Jeśli już uruchomiłeś (Scaffold and Migration), wykonując poniższe polecenia, takie jak -

rails generate scaffold User name:string address:text

rake db:migrate 

Następnie należy uruchomić pierwsze polecenie migracji wycofania, a następnie zniszczyć rusztowanie jak poniżej -

rake db:rollback

rails destroy scaffold User name:string address:text

W ten sposób możemy cofnąć rusztowanie. Również możemy użyć d do niszczenia i g do generowania jako skrót.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.