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.

marcamillion
fuente

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
Fábio Batista
fuente
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.

Maikon
fuente
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

Maikel
fuente
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í

uma
fuente
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
kishore
fuente
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.

Foram Thakral
fuente
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
Patrick_870206
fuente
3

Puedes revertir tu

rails g/generate controller/model/migration xxx

salida mediante el uso de:

 rails d/destroy controller/model/migration xxx
el hombre de hojalata
fuente
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.

L11
fuente
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

Santanu
fuente
3

Puede deshacer una rails generatede las siguientes maneras:

  • Para el modelo: rails destroy MODEL
  • Para el controlador: rails destroy controller_name
Vipul Lawande
fuente
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).

Chutipong Roobklom
fuente
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 ____

Krishnaraj R
fuente
0

Andamios eliminados para el modelo seleccionado:

bin/rails d scaffold <AccessControl> //model name
Dinesh Vaitage
fuente
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.

Manoj Kumar
fuente
0

Para revertir rails generate, use rails destroy:

rails destroy Model

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

purga
fuente
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.

Flautarian
fuente