Come faccio a invertire un 'rotaie generano'?
-
08-10-2019 - |
Domanda
vale a dire. eliminare tutti i file che esso ha creato e rollback di tutte le modifiche apportate? Non necessariamente al db, ma più per i file di configurazione.
es. cancellando automaticamente tutte le mappature delle risorse per il modello / regolatore cancellato nel file routes.rb e ovunque che potrebbero essere state apportate modifiche?
Grazie.
Soluzione
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho
Aste 3.2 aggiunge un nuovo collegamento d
al comando, così ora è possibile scrivere:
rails d controller lalala
rails d model yadayada
rails d scaffold hohoho
Altri suggerimenti
vale la pena di menzionare il -p bandiera qui (p per finta).
Se si aggiunge questo al comando sarà semplicemente fare una corsa di "test" e vi mostrerà quali file saranno cancellati senza effettivamente cancellarli.
$ 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
Se sei felice con esso, eseguire di nuovo il comando senza l'opzione -p.
rails destroy controller Controller_name
stava tornando un po 'di errori. Per essere in grado di distruggere controllo ho dovuto togliere percorsi correlati in routes.rb. Post scriptum Sto utilizzando rotaie 3.1
Stai usando il controllo di versione (la sovversione, git, qualunque cosa)? Ripristina solo. Se no - perché no? !!
Questo è il prototipo di generare o distruggere un controller o modello rotaie.
rails generate/destroy controller/model [controller/model Name]
Per esempio, se è necessario generare dell'utente del controller
rails generate controller User
o
rails g controller User
se vogliono distruggere dell'utente del controller o ripristinare azione di cui sopra poi
rails destroy controller User
o
rails d controller User
Si potrebbe utilizzare rails d model/controller/migration ...
per distruggere o rimuovere le variazioni generate utilizzando i binari generano comando.
Esempio: rails g model Home name:string
crea un modello di nome home
con l'attributo name
. Per rimuovere i file e codice generato da quel comando possiamo usare il comando rails d model Home
.
è possibile ripristinare l'output rails g/generate controller/model/migration xxx
utilizzando:
rails d/destroy controller/model/migration xxx
Si supponga che ho creato un campione di controllo di nome come come
rails generate controller sample
Se devo distruggere questo controller, tutto quello che devo fare è di swap generare con distruggere , come in
rails destroy controller sample.
Se si vuole invertire la generazione, tutto ciò che dovete fare è scambiare il ' generare ' con ' distruggere '
Se si preferisce eliminare il controller manualmente:
Per il regolatore 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
Se si utilizza rotaie, uso rails d controller Users
e se si utilizza zeus, uso zeus d controller Users
. D'altra parte, se si utilizza git o SVN, annullare le modifiche con il numero di commit. Questo è molto più veloce.
E 'possibile annullare una rotaie generano nei seguenti modi:
- Per il modello:
rails destroy MODEL
- per il regolatore:
rails destroy controller_name
Si può distruggere tutte le cose che è stato creato allo stesso modo, tranne pochi cambiamenti cosa. Per il regolatore,
rails d controller_name (d stands for destroy)
Per il modello
rails d model_name
che hai appena messo d(destroy)
invece di g(generate)
nella migrazione.
Per invertire questo, abbiamo appena distruggerla. Apri l'applicazione Terminale e passare alla directory del progetto. Poi, digitare questo:
rails destroy model CamelCase
rails destroy controller CamelCase
Dove CamelCase è un nome di qualsiasi modello o del controller. Si eliminerà il modello, la migrazione e alcuni dei file di test correlati. (Potete vedere risultato sul terminale dopo aver eseguito il comando.)
Tutte le generazioni di rotaie hanno un distruggerli di loro, così, se si crea dal generatore a (per esempio) impalcatura di nome "compiti", di distruggere tutti i cambiamenti di quel ganerate si dovrà digitare:
rails destroy scaffold Tasks
La speranza ti aiuta.
ponteggi rimosso in seguito a modello selezionato
bin/rails d scaffold <AccessControl> //model name
Prima di riportare l'rails generate
, assicurati di far ritirare la migrazione prima.
Caso 1: se si desidera ripristinare patibolo quindi eseguire il comando -
rails destroy scaffold MODEL_NAME
Caso 2: se si desidera ripristinare il modello quindi eseguire il comando -
rails destroy model MODEL_NAME
Caso 3: se si desidera ripristinare controller di eseguire questo comando -
rails destroy controller CONTROLLER_NAME
Nota: è anche possibile utilizzare d
scorciatoia al posto di destroy
Usiamo generare
rails generate app
.
Quindi rigenerare qualsiasi istruzione generate
può essere invertito istruzione using destroy
.
Basta sostituire generate
con destroy
vale a dire rails generate app
può essere scritta come rails destroy app'
rails generano ____as
rails distruggono ____ `
per invertire rotaie generano, utilizzano guide distruggono
rails destroy Model
https://guides.rubyonrails.org/command_line.html#rails-destroy