Cómo revertir una 'generación de rieles'


471

Quiero eliminar todos los archivos que creó y revertir cualquier cambio realizado, pero no necesariamente a la base de datos, sino más a los archivos de configuración.

Me gustaría eliminar automáticamente todas las asignaciones de recursos para el modelo / controlador eliminado en el archivo routes.rb y en cualquier otro lugar donde se hayan realizado cambios.

Respuestas:


929
rails destroy controller lalala
rails destroy model yadayada
rails destroy scaffold hohoho

Rails 3.2 agrega un nuevo dacceso directo al comando, por lo que ahora puede escribir:

rails d controller lalala
rails d model yadayada
rails d scaffold hohoho

1
Por cierto, ¿cómo uso este comando para eliminar un andamio? El modelo y el controlador funcionan bien ... pero ¿cómo revierto completamente un andamio?
marcamillion

66
Ok, lo descubrí. Quizás estaba escribiendo mal algo. Simplemente corrí rails destroy scaffold lalalaly eso funcionó.
marcamillion

38
@marcamillion Debe haber sido esa 'L' extra.
varatis

1
¿Qué pasa con la eliminación de archivos asociados con una instalación de gemas comorails generate <gemname>:install
doug

2
@ Douglas, no creo que sea posible. Su mejor opción es simplemente volver a ejecutar el generador con la -fbandera para forzarlo a recrear / reeditar los archivos ... Luego puede ver qué archivos creó / cambió y proceder a eliminarlos manualmente.
Fábio Batista

49

Vale la pena mencionar la -pbandera aquí ("p" para fingir ).

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á satisfecho con esto, ejecute el comando nuevamente sin la -pbandera.


Creo que esta es la mejor respuesta
Emil Reña Enríquez

24

rails destroy controller Controller_nameEstaba devolviendo un montón de errores. Para poder destruir el controlador, tuve que eliminar las rutas relacionadas en routes.rb. PD: estoy usando rails 3.1


No resuma sus acciones a menos que tenga la intención de que esta respuesta sea la respuesta correcta seleccionada.
The Tin Man

11

Este es un prototipo para generar o destruir un controlador o modelo en Rails:

rails generate/destroy controller/model [controller/model Name]

Por ejemplo, si necesita generar un controlador de usuario:

rails generate controller User

o

rails g controller User

Si desea destruir el controlador de usuario o volver a la acción anterior, use:

rails destroy controller User

o:

rails d controller User

ingrese la descripción de la imagen aquí


4

Puede usar rails d model/controller/migration ...para destruir o eliminar los cambios generados mediante el rails generatecomando.

Por ejemplo:

rails g model Home name:string

crea un modelo nombrado homecon atributo name. Para eliminar los archivos y el código generado a partir de ese comando, podemos usar

rails d model Home

3

Puede destruir todas las cosas que se crearon de la misma manera, excepto los pequeños cambios. Para el controlador,

rails d controller_name (d stands for destroy)

Para el modelo

rails d model_name

simplemente pones en d(destroy)lugar de g(generate)en tu migración.


3

Si prefiere eliminar el controlador manualmente:

Para el controlador 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

3

Puedes revertir tu

rails g/generate controller/model/migration xxx

salida mediante el uso de:

 rails d/destroy controller/model/migration xxx

3

Supongamos que he creado un controlador llamado "muestra" como:

rails generate controller sample

Si tengo que destruir este controlador, todo lo que tengo que hacer es intercambio generatecon destroy, al igual que en

rails destroy controller sample.

Si desea invertir la formación, todo lo que tiene que hacer es cambiar generatecon destroy.


3

Si usa Rails, use rails d controller Users.

Y, si usa Zeus, use zeus d controller Users.

Por otro lado, si está utilizando git o SVN, revierta sus cambios con el número de confirmación. Esto es mucho más rápido


3

Puede deshacer una rails generatede las siguientes maneras:

  • Para el modelo: rails destroy MODEL
  • Para el controlador: rails destroy controller_name

1

Para revertir eso, simplemente lo destruimos. Abra la aplicación Terminal y vaya al directorio del proyecto, luego, escriba esto:

rails destroy model CamelCase
rails destroy controller CamelCase

¿Dónde CamelCaseestá el nombre de cualquier modelo o controlador? Eliminará el modelo, la migración y algunos de los archivos de prueba relacionados. (Puede ver el resultado en la ventana Terminal después de ejecutar el comando).


0

Usamos generar como rails generate app. Por lo tanto, la regeneración de cualquier generatedeclaración se puede revertir usando la destroydeclaración. Simplemente reemplace generatecon, por destroy ejemplo, rails generate appse puede escribir como los rails destroy app' rieles generan ____ los asrieles destruyen ____


0

Andamios eliminados para el modelo seleccionado:

bin/rails d scaffold <AccessControl> //model name

0

Antes de revertir 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 atajos en dlugar de destroy.


0

Para revertir rails generate, use rails destroy:

rails destroy Model

Ver " rails destroy" para más información.


0

Todas las versiones de rieles tienen un "destruir", por lo tanto, si crea un andamio (por ejemplo) llamado "tareas" usando un generador, para destruir todos los cambios de ese paso de generación deberá escribir:

rails destroy scaffold Tasks

Espero que te ayude.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.