Undo scaffolding in Rails
Ruby on-RailsRubyScaffoldingRuby on-Rails Problem Overview
Is there any way to 'undo' the effects of a scaffold command in Rails?
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
First, if you have already run the migrations generated by the scaffold
command, you have to perform a rollback first.
rake db:rollback
You can create scaffolding using:
rails generate scaffold MyFoo
(or similar), and you can destroy/undo it using
rails destroy scaffold MyFoo
That will delete all the files created by generate
, but not any additional changes you may have made manually.
Solution 2 - Ruby on-Rails
Rishav Rastogi is right, and with rails 3.0 or higher its:
rails generate scaffold ...
rails destroy scaffold ...
Solution 3 - Ruby on-Rails
You can undo whatever you did with
rails generate xxx
By
rails destroy xxx
For example this applies generators to migration, scaffold, model...etc
Solution 4 - Ruby on-Rails
If you just want to see the files a generator will create you can pass the generator --pretend or -p option.
Solution 5 - Ruby on-Rails
Best way is :
destroy rake db: rake db:rollback
For Scaffold:
rails destroy scaffold Name_of_script
Solution 6 - Ruby on-Rails
for first time, you can check you database migration if you have generate scaffold. you must destroy them to clean up your database
rake db:rollback
then
rails d scaffold
Solution 7 - Ruby on-Rails
rails d scaffold <scaffoldname>
Also, make sure you undo the migration you made either by rollback or to a particular version.
Solution 8 - Ruby on-Rails
To generate scaffolding :
rails generate scaffold xyz
To revert scaffolding :
rails destroy scaffold xyz
Solution 9 - Ruby on-Rails
Rails destroy name
rake db:rollback
Solution 10 - Ruby on-Rails
For generating scaffold in rails -
rails generate scaffold MODEL_GOES_HERE
For undo scaffold in rails -
rails destroy scaffold MODEL_GOES_HERE
Solution 11 - Ruby on-Rails
you need to roll back migrations too after destroying scaffold too
rails destroy scaffold 'scaffoldname'
rake db:rollback
Solution 12 - Ruby on-Rails
So, Process you should follow to undo scaffolding in rails 4. Run Command as below:
rails d scaffold FooBar
rake db:rollback
if you_had_run_rake db:migrate
after creating above scaffold?
That's it!
Cheers!
Solution 13 - Ruby on-Rails
use this
rails d scaffold MODEL_NAME
rake db:rollback
Solution 14 - Ruby on-Rails
Recommend rollback First ,type in your Terminal.
rake db:rollback
Add destroy scaffold (the 'd' stands for 'destroy')
rails d scaffold name_of_scaffold
Enjoy your code.
Solution 15 - Ruby on-Rails
you need to rollback the migrations first by doing rake db:rollback if any And then destroy the scaffold by
rails d scaffold foo
Solution 16 - Ruby on-Rails
First you will have to do the rake db:rollback for destroy the table
if you have already run rake db:migrate and then you can run
rails d scaffold Model
Solution 17 - Ruby on-Rails
Yes, the scaffold
itself and all the things that amalgamate it.
The destroy
command is the opposite of generate
and will undo one. Just pass it the name the same way did with generate
and it'll be scrubbed from your project:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Solution 18 - Ruby on-Rails
To generate the scaffold:
rails generate scaffold abc
To revert this scaffold:
rails destroy scaffold abc
If you have run the migration for it just rollback
rake db:rollback STEP=1
Solution 19 - Ruby on-Rails
provider another solution based on git
start a new project
rails new project_name
cd project_name
initialize git
git init
git commit -m "initial commit"
create a scaffold
rails g scaffold MyScaffold
rake db:migrate
rollback the scaffold
rake db:rollback
git reset --hard
git clean -f -d
Solution 20 - Ruby on-Rails
> rails [option] scaffold scaffold_name
Option
g generate
d destroy
If you do
rails g scaffold myFoo
Then reverse it back using
rails d scaffold MyFoo
Solution 21 - Ruby on-Rails
To generate:
rails g scaffold post
rake db:migrate
To delete:
rake db:rollback
rails d scaffold post
Solution 22 - Ruby on-Rails
When we generate scaffold, following files will be created:
Command: rails generate scaffold Game
Files created:
> 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
If we have run the migration after this then we have to rollback the migration first as the deletion of scaffold will remove the migration file too and we will not able to revert that migration.
Incase we have run the migration:
rake db:rollback
and after this we can safely remove the scaffold by this commad.
rails d scaffold Game
This command will remove all the files created by the scaffold in your project.
Solution 23 - Ruby on-Rails
Any time you run rails g
, you can reverse it by running rails d
(destroy) to remove what you've generated. If you have already run rake db:migrate
, you will need to run rake db:rollback
before destroying :)
Solution 24 - Ruby on-Rails
Case 1: If you run only this command to generate scaffold -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
but till now you did not run any command for migration like
rake db:migrate
then you should need to run only this command like -
rails destroy scaffold User name:string address:text
Case 2: If you already run(Scaffold and Migration) by below commands like -
rails generate scaffold User name:string address:text
rake db:migrate
Then you should need to run first rollback migration command then destroy scaffold like below -
rake db:rollback
rails destroy scaffold User name:string address:text
So In this manner, we can undo scaffolding. Also we can use d for destroy and g for generate as a shortcut.
Solution 25 - Ruby on-Rails
rails g scaffold MyFoo
for generating and
rails d scaffold MyFoo
for removing