Czy jest jakiś sposób na „cofnięcie” efektów polecenia rusztowania w Railsach?
Czy jest jakiś sposób na „cofnięcie” efektów polecenia rusztowania w Railsach?
Odpowiedzi:
Po pierwsze , jeśli już uruchomiłeś migracje wygenerowane przez scaffold
komendę, 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.
rake db:rollback
zanim zniszczysz rusztowanie. Spowoduje to zniszczenie / upuszczenie tabeli, jeśli nie ma innej migracji oprócz migracji rusztowania przed nią.
git status
I / lub git diff
, aby sprawdzić, czy polecenie zniszczenia niczego nie przeoczyło.
Rishav Rastogi ma rację, a przy szynach 3.0 lub nowszych jego:
szyny generują rusztowanie ...
szyny niszczą rusztowanie ...
rake db:rollback
przed rails destroy scaffold
lub jeśli nie jest to ostatni zrobiłeś grabie db:migrate:down VERSION=20080906120000
można znaleźć numer przed jej nazwę w db / migrować
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
Jeśli chcesz tylko zobaczyć pliki, które utworzy generator, możesz przekazać generator --pretend lub -p.
Najlepszym sposobem jest:
destroy rake db: rake db:rollback
W przypadku rusztowania:
rails destroy scaffold Name_of_script
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
Do generowania rusztowania w szynach -
rails generate scaffold MODEL_GOES_HERE
Do cofnięcia rusztowania w szynach -
rails destroy scaffold MODEL_GOES_HERE
rails g
i rails d
.
musisz także wycofać migracje po zniszczeniu rusztowania
rails destroy scaffold 'scaffoldname'
rake db:rollback
Przetwarzaj więc, aby cofnąć rusztowanie w szynach 4. Uruchom polecenie w następujący sposób:
rails d scaffold FooBar
rake db:rollback
jeśli ty miałeś rację rake db:migrate
po utworzeniu powyższego rusztowania?Otóż to!
Twoje zdrowie!
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.
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
Tak, scaffold
sama i wszystkie rzeczy, które ją łączą.
destroy
Polecenie jest przeciwieństwem generate
i cofnie jeden. Wystarczy podać nazwę w taki sam sposób, jak generate
to zrobiono, a zostanie ona usunięta z projektu:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
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
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
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.
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.
rails g scaffold MyFoo
do generowania i
rails d scaffold MyFoo
do usunięcia