ruby - new - ¿Cómo revertir un ''rails genera''?
ruby on rails tutorial (17)
¿Está utilizando el control de versiones (subversion, git, lo que sea)? Sólo revertir. ¡¡¿Si no, porque no?!!
¿Es decir, eliminar todos los archivos que creó y deshacer los cambios realizados? No necesariamente a la base de datos, pero más a los archivos de configuración.
Por ejemplo, ¿eliminar automáticamente todas las asignaciones de recursos para el modelo / controlador eliminado en el archivo route.rb y en cualquier otro lugar donde se hayan realizado cambios?
Gracias.
Antes de revertir la rails generate
, asegúrese de revertir la migración primero.
Caso 1: si desea revertir el andamio, ejecute este comando -
rails destroy scaffold MODEL_NAME
Caso 2: si desea revertir el modelo, ejecute este comando -
rails destroy model MODEL_NAME
Caso 3: si desea revertir el controlador, ejecute este comando -
rails destroy controller CONTROLLER_NAME
Nota: también puedes usar el atajo d
lugar de destroy
Este es un prototipo para generar o destruir un controlador o modelo en rieles.
rails generate/destroy controller/model [controller/model Name]
por ejemplo, si necesita generar User Controller
rails generate controller User
o
rails g controller User
Si desea destruir el controlador de usuario o volver a la acción anterior, entonces
rails destroy controller User
o
rails d controller User
Para eliminar el controlador manualmente, en caso de que el comando rails d controller
no funcione:
Para el controlador de 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
Para revertir eso, simplemente lo destruimos. Abra la aplicación Terminal y vaya al directorio del proyecto. Entonces, escriba esto:
rails destroy model CamelCase
rails destroy controller CamelCase
Donde CamelCase es el nombre de cualquier modelo o controlador. Se eliminará el modelo, la migración y algunos de los archivos de prueba relacionados. (Puede ver el resultado en la Terminal después de ejecutar el comando).
Podría usar rails d model/controller/migration ...
para destruir o eliminar los cambios generados usando el comando de generación de rieles.
Ejemplo: rails g model Home name:string
crea un modelo denominado home
con el name
atributo. Para eliminar los archivos y el código generado a partir de ese comando, podemos usar los rails d model Home
comando rails d model Home
.
Puedes deshacer un riel generado de las siguientes maneras:
- Para Modelo:
rails destroy MODEL
- Para el controlador:
rails destroy controller_name
Si usas rieles, usa rails d controller Users
y si usa zeus, use zeus d controller Users
. Por otro lado, si está utilizando git o SVN, revertir los cambios con el número de confirmación. Esto es mucho más rápido.
Supongamos que he creado un controlador llamado sample como
rails generate controller sample
Si tengo que destruir este Controlador, todo lo que tengo que hacer es intercambiar el generar con destruir , como en
rails destroy controller sample.
Si desea revertir la generación, todo lo que tiene que hacer es intercambiar el '' generar '' por '' destruir ''
Todas las generaciones de rieles tienen un destructor de ellos, por lo tanto, si creas mediante un generador (por ejemplo) un andamio llamado "tareas", para destruir todos los cambios de esa media deberás escribir:
rails destroy scaffold Tasks
Espero que te ayude.
Usamos generar como rails generate app
. Por lo tanto, la regeneración de cualquier sentencia de generate
se puede revertir utilizando la sentencia de destroy
. Simplemente reemplace generate
con destroy
es decir, los rails generate app
pueden escribirse como los rails destroy app''
rieles generan ____ as
rieles destruyen ____ `
Vale la pena mencionar la bandera -p aquí (p para simular).
Si agrega esto al comando, simplemente realizará una ejecución de "prueba" y le mostrará qué archivos se eliminarán sin eliminarlos realmente.
$ 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
Si está contento con eso, ejecute el comando nuevamente sin el indicador -p.
puede revertir los rails g/generate controller/model/migration xxx
salida rails g/generate controller/model/migration xxx
usando:
rails d/destroy controller/model/migration xxx
revertir rieles generar, usar rieles destruir
rails destroy Model
https://guides.rubyonrails.org/command_line.html#rails-destroy
rails destroy controller Controller_name
estaba devolviendo un montón de errores. Para poder destruir el controlador tuve que eliminar las rutas relacionadas en route.rb. PS estoy usando rieles 3.1
Se eliminaron los andamios para el modelo seleccionado.
bin/rails d scaffold <AccessControl> //model name
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho
Rails 3.2 agrega un nuevo acceso directo de d
al comando, por lo que ahora puede escribir:
rails d controller lalala
rails d model yadayada
rails d scaffold hohoho