Deshacer andamios en rieles


¿Hay alguna forma de 'deshacer' los efectos de un comando scaffold en Rails?

Author: Andrei Eliade, 2009-06-08

24 answers

Primero, si ya ha ejecutado las migraciones generadas por el comando scaffold, primero debe realizar una reversión.

rake db:rollback

Puede crear andamiaje usando:

rails generate scaffold MyFoo 

(o similar), y se puede destruir / deshacer usando

rails destroy scaffold MyFoo

Que eliminará todos los archivos creados por generate, pero no cualquier cambio adicional que haya realizado manualmente.

 735
Author: Rishav Rastogi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-12 22:53:27

Rishav Rastogi tiene razón, y con rails 3.0 o superior su:

rails generate scaffold ...
rails destroy scaffold ...
 167
Author: Misha Rabinovich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-04 21:23:42

Puedes deshacer lo que hiciste con

rails generate xxx

Por

rails destroy xxx

Por ejemplo, esto aplica generadores a migration, scaffold, model...etc

 40
Author: thekindofme,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-27 09:13:27

Si solo desea ver los archivos que creará un generador, puede pasar la opción generator pretend pretend o-p.

 13
Author: Sudhanshu Arya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-28 22:17:02

La mejor manera es:

destroy rake db:  rake db:rollback

Para el Andamio:

rails destroy scaffold Name_of_script
 10
Author: user917158,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-25 01:29:01
rails d scaffold <scaffoldname>

También, asegúrese de deshacer la migración que hizo ya sea por reversión o a una versión en particular.

 8
Author: RageCore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-30 17:14:43

Por primera vez, puede comprobar la migración de su base de datos si ha generado scaffold. usted debe destruirlos para limpiar su base de datos

rake db:rollback

Entonces

rails d scaffold
 7
Author: dedennufan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-18 15:44:14

Para generar andamios:

rails generate scaffold xyz

Para revertir el andamiaje:

rails destroy scaffold xyz
 4
Author: uma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 11:32:31

Rails destroy name

rake db:rollback
 4
Author: starbuck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-18 15:43:19

También es necesario revertir las migraciones después de destruir scaffold too

rails destroy scaffold 'scaffoldname'
rake db:rollback
 2
Author: Bhargav Mehta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-16 14:40:14

Para generar andamios en rieles -

rails generate scaffold MODEL_GOES_HERE

Para deshacer scaffold en rails -

rails destroy scaffold MODEL_GOES_HERE
 2
Author: Amit Suroliya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-07 10:56:50

Por lo tanto, el proceso que debe seguir para deshacer el andamiaje en rails 4. Ejecutar el comando de la siguiente manera:

  1. rails d scaffold FooBar
  2. rake db:rollback if you_had_run_rake db:migrate después de crear por encima del andamio?

¡Eso es todo!

Salud!

 2
Author: Manish Shrivastava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-20 07:41:58

Usa esto

rails d scaffold MODEL_NAME

rake db:rollback
 1
Author: vipin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-24 13:39:25

Primero tendrás que hacer el rake db: rollback para destruir la tabla
si ya ha ejecutado rake db: migrate y luego puede ejecutar

Rails d modelo de andamio

 1
Author: Shoaib Malik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-13 06:45:05

Recomendar reversión Primero ,escriba su Terminal.

rake db:rollback

Añadir destroy scaffold (la' d 'significa'destroy')

rails d scaffold name_of_scaffold

Disfruta tu código.

 1
Author: Chutipong Roobklom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-14 01:02:45

Primero debe revertir las migraciones haciendo rake db: rollback si lo hay Y luego destruir el andamio por

rails d scaffold foo
 1
Author: Manish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-18 15:44:00

Cuando generamos scaffold, se crearán los siguientes archivos:

Orden: rails generate scaffold Game

Archivos creados:

>       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

Si hemos ejecutado la migración después de esto, entonces tenemos que revertir la migración primero, ya que la eliminación de scaffold también eliminará el archivo de migración y no podremos revertir esa migración.

En caso de que hayamos ejecutado la migración:

rake db:rollback

Y después de esto podemos quitar con seguridad el andamio por este commad.

rails d scaffold Game

Este comando elimine todos los archivos creados por el scaffold en su proyecto.

 0
Author: BIlal Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-05 06:46:58

Cada vez que ejecute rails g, puede invertirlo ejecutando rails d (destruir) para eliminar lo que ha generado. Si ya ha ejecutado rake db:migrate, deberá ejecutar rake db:rollback antes de destruir :)

 0
Author: Maddie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-23 16:14:39

Caso 1: Si ejecuta solo este comando para generar scaffold -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

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

Pero hasta ahora no ha ejecutado ningún comando para la migración como

rake db:migrate

Entonces debería tener que ejecutar solo este comando como -

rails destroy scaffold User name:string address:text

Caso 2: Si ya se ejecuta (Scaffold y Migración) mediante los siguientes comandos como -

rails generate scaffold User name:string address:text

rake db:migrate 

Entonces debería tener que ejecutar primero el comando de migración de reversión y luego destruir scaffold como se muestra a continuación -

rake db:rollback

rails destroy scaffold User name:string address:text

Así que de esta manera, podemos deshacer andamio. También podemos usar d para destruir y g para generar como un acceso directo.

 0
Author: Manoj Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-17 07:00:22

Sí, el scaffold mismo y todas las cosas que lo amalgaman.

El comando destroy es lo opuesto a generate y deshará uno. Simplemente pásale el nombre de la misma manera que lo hiciste con generate y se borrará de tu proyecto:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
 0
Author: JackHasaKeyboard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-08 11:54:48

Para generar el andamio:

rails generate scaffold abc

Para revertir este andamiaje:

rails destroy scaffold abc

Si ha ejecutado la migración para ello, simplemente reverse

rake db:rollback STEP=1
 0
Author: nitanshu verma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-11 05:07:19
rails g scaffold MyFoo 

Para generar y

rails d scaffold MyFoo

Para eliminar

 0
Author: Ayaz Ahmad Tarar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-08 14:17:31

Proveedor otra solución basada en git

Iniciar un nuevo proyecto

rails new project_name
cd project_name

Inicializar git

git init
git commit -m "initial commit"

Crear un andamio

rails g scaffold MyScaffold
rake db:migrate

Revertir el andamio

rake db:rollback
git reset --hard
git clean -f -d
 0
Author: Ray Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-16 07:49:42

Rails [option] scaffold scaffold_name

Opción

g    generate
d    destroy

Si lo haces

rails g  scaffold myFoo

Luego revertirlo usando

rails d scaffold MyFoo
 0
Author: krishnar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-30 17:01:14