Annulla le impalcature in Rotaie


493

Esiste un modo per "annullare" gli effetti di un comando impalcatura in Rails?


4
rotaie distruggono l'impalcatura xxx
Robin Garg,

1
In Rails 5: Genera scaffold con: $ rails genera scaffold <nome>. Se hai migrato i tuoi file, esegui un rollback: $ rake db: rollback . Distruggi o annulla l'impalcatura con: $ rails destroy impalcatura <nome>. Puoi leggere di più al riguardo a
Nesha Zoric il

Risposte:


777

Innanzitutto , se hai già eseguito le migrazioni generate dal scaffoldcomando, devi prima eseguire un rollback.

rake db:rollback

È possibile creare impalcature utilizzando:

rails generate scaffold MyFoo 

(o simile) e puoi distruggerlo / annullarlo usando

rails destroy scaffold MyFoo

Ciò eliminerà tutti i file creati da generate, ma non eventuali modifiche aggiuntive che potresti aver apportato manualmente.


11
non dimenticare di rake db:rollbackprima di distruggere il tuo patibolo. Ciò distruggerà / eliminerà la tabella se non vi è altra migrazione tranne la migrazione dell'impalcatura prima di essa.
Yakob Ubaidi

3
In alcuni casi ci sono ancora file rimanenti che non sono stati eliminati dallo scaffold. Controlla il controllo della tua versione, ad es. git statusE / o git diff, per vedere se il comando destro non ha perso nulla.
codifica in aaron il

1
Se hai eseguito rake db: migrate ha fatto alcune altre migrazioni, quindi ha senso creare una migrazione per distruggere il tavolo prima di "distruggere" l'impalcatura. quindi fai qualcosa come rails g migrazione DropMyFoos e quindi apri il file di migrazione e aggiungi il codice per eliminare la tabella. Esegui questa migrazione e quindi esegui lo scaffold di distruzione.
Vikram Sharma,

Inoltre, tieni presente che rimuoverà la cartella di visualizzazione per my_foo, anche se hai file extra lì.
Andrew K,

167

Rishav Rastogi ha ragione e con le rotaie 3.0 o successive è:

le rotaie generano impalcature ...
le rotaie distruggono l'impalcatura ...

8
@femi Il tavolo è stato realizzato con rastrello. Il modo migliore per rimuoverlo è in esecuzione rake db:rollbackprima rails destroy scaffoldo se non è l'ultimo che hai fatto rastrellare db:migrate:down VERSION=20080906120000puoi trovare il numero prima del suo nome in db / migrate
Travis Pessetto

40

Puoi annullare qualunque cosa tu abbia fatto

rails generate xxx

Di

rails destroy xxx

Ad esempio, questo vale per i generatori di migrazione, impalcatura, modello ... ecc


13

Se vuoi solo vedere i file creati da un generatore puoi passare l'opzione generatore --pretend o -p.


10

Il modo migliore è:

destroy rake db:  rake db:rollback

Per impalcatura:

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

Inoltre, assicurati di annullare la migrazione effettuata tramite rollback o verso una versione particolare.


8

per la prima volta, puoi verificare la migrazione del tuo database se hai generato scaffold. è necessario distruggerli per ripulire il database

rake db:rollback

poi

rails d scaffold

4

Per generare impalcature:

rails generate scaffold xyz

Per ripristinare i ponteggi:

rails destroy scaffold xyz

4

Le rotaie distruggono il nome

rake db:rollback

1
primo rollback (se sei migrato), quindi distruggi l'impalcatura
gavit

3

Per la generazione di impalcature su binari -

rails generate scaffold MODEL_GOES_HERE

Per annullare l'impalcatura nelle guide -

rails destroy scaffold MODEL_GOES_HERE

2
Anche scorciatoie rails ge rails d.
Steve Klein

2

è necessario ripristinare anche le migrazioni dopo aver distrutto il patibolo

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

Quindi, Processo che dovresti seguire per annullare l'impalcatura nei binari 4. Esegui il comando come di seguito:

  1. rails d scaffold FooBar
  2. rake db:rollbackse you_had_run_ rake db:migratedopo aver creato sopra l'impalcatura?

Questo è tutto!

Saluti!


2

Consiglia il rollback Per prima cosa, digita il tuo Terminale.

rake db:rollback

Aggiungi distruggere impalcatura (la 'd' sta per 'distruggere')

rails d scaffold name_of_scaffold

Goditi il ​​tuo codice.


1

Usa questo

rails d scaffold MODEL_NAME

rake db:rollback

1

Per prima cosa dovrai eseguire il rake db: rollback per distruggere la tabella
se hai già eseguito rake db: migrate e quindi puoi eseguire

binari d modello impalcatura


1

devi prima eseguire il rollback delle migrazioni eseguendo rake db: rollback, se presente, e quindi distruggendo il ponteggio

rails d scaffold foo

1

Sì, lo scaffoldstesso e tutte le cose che lo uniscono.

Il destroycomando è l'opposto di generatee ne annullerà uno. Basta passare il nome nello stesso modo in cui è stato generatee verrà rimosso dal tuo progetto:

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

1

Per generare l'impalcatura:

rails generate scaffold abc

Per ripristinare questo scaffold:

rails destroy scaffold abc

Se hai eseguito la migrazione per il solo rollback

rake db:rollback STEP=1

1

fornire un'altra soluzione basata su git

avviare un nuovo progetto

rails new project_name
cd project_name

inizializza git

git init
git commit -m "initial commit"

creare un'impalcatura

rails g scaffold MyScaffold
rake db:migrate

rollback dell'impalcatura

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

1

rails [opzione] scaffold nome_impalcatura

Opzione

g    generate
d    destroy

Se fate

rails g  scaffold myFoo

Quindi ripristinalo usando

rails d scaffold MyFoo

0

Quando generiamo scaffold, verranno creati i seguenti file:

Comando: rails generate scaffold Game

File creati:

>       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

Se abbiamo eseguito la migrazione dopo questo, allora dobbiamo prima ripristinare la migrazione poiché l'eliminazione di scaffold rimuoverà anche il file di migrazione e non saremo in grado di ripristinare tale migrazione.

Nel caso in cui abbiamo eseguito la migrazione:

rake db:rollback

e dopo questo possiamo rimuovere in sicurezza il ponteggio da questo commad.

rails d scaffold Game

Questo comando rimuoverà tutti i file creati dallo scaffold nel progetto.


0

Ogni volta che corri rails g, puoi invertirlo eseguendo rails d(distruggendo) per rimuovere ciò che hai generato. Se hai già corsorake db:migrate , dovrai correre rake db:rollbackprima di distruggere :)


0

Caso 1: se si esegue solo questo comando per generare scaffold -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

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

ma fino ad ora non hai eseguito alcun comando per migrazione come

rake db:migrate

quindi dovresti eseguire solo questo comando come -

rails destroy scaffold User name:string address:text

Caso 2: se si esegue già (Scaffold e Migration) con i seguenti comandi come -

rails generate scaffold User name:string address:text

rake db:migrate 

Quindi dovresti eseguire il primo comando di migrazione rollback, quindi distruggere lo scaffold come di seguito:

rake db:rollback

rails destroy scaffold User name:string address:text

Quindi, in questo modo, possiamo annullare le impalcature. Inoltre possiamo usare d per distruggere e g per generare come scorciatoia.


0
rails g scaffold MyFoo 

per la generazione e

rails d scaffold MyFoo

per la rimozione


E non c'è bisogno di menzionare gli attributi, è corretto? Grazie
Shane G
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.