Deshacer andamios en rieles
¿Hay alguna forma de 'deshacer' los efectos de un comando scaffold en Rails?
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.
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 ...
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
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.
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
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.
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
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
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
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
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
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:
rails d scaffold FooBar
-
rake db:rollback
if you_had_run_rake db:migrate
después de crear por encima del andamio?
¡Eso es todo!
Salud!
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
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
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.
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
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.
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 :)
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.
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
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
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
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
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
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