在Rails中撤销脚手架

有什么方法可以在Rails中“撤销”脚手架命令的效果吗?

首先 ,如果您已经运行scaffold命令生成的迁移,则必须先执行回滚。

 rake db:rollback 

您可以使用以下脚本创build脚手架:

 rails generate scaffold MyFoo 

(或类似的), 你可以使用摧毁/撤消

 rails destroy scaffold MyFoo 

这将删除所有通过generate创build的文件,但不会进行任何手动更改。

Rishav Rastogi是正确的,并与轨道3.0或更高版本:

铁轨生成脚手架...
铁轨销毁脚手架...

你可以撤消你所做的任何事情

 rails generate xxx 

通过

 rails destroy xxx 

例如,这将发电机应用于迁移,脚手架,模型等

如果您只想查看生成器将创build的文件,则可以传递生成器–pretend或-p选项。

最好的方法是:

 destroy rake db: rake db:rollback 

对于脚手架:

 rails destroy scaffold Name_of_script 
 rails d scaffold <scaffoldname> 

另外,请确保您撤销您通过回滚或特定版本进行的迁移。

如果您生成脚手架,您可以第一次检查数据库迁移。 你必须销毁它们来清理你的数据库

 rake db:rollback 

然后

 rails d scaffold 

生成脚手架:

 rails generate scaffold xyz 

恢复脚手架:

 rails destroy scaffold xyz 

Rails破坏名字

 rake db:rollback 

你也需要在销毁脚手架后回滚迁移

 rails destroy scaffold 'scaffoldname' rake db:rollback 

用于在轨道中生成脚手架 –

 rails generate scaffold MODEL_GOES_HERE 

在rails中撤销脚手架 –

 rails destroy scaffold MODEL_GOES_HERE 

所以,你应该按照以下步骤撤销脚手架4.运行命令如下:

  1. rails d scaffold FooBar
  2. rake db:rollback如果you_had_run_ rake db:migrate创build上面的脚手架后rake db:migrate

而已!

干杯!

用这个

 rails d scaffold MODEL_NAME rake db:rollback 

首先,你将不得不做耙db:回滚销毁表
如果你已经运行rake db:migrate ,然后你可以运行

导轨d脚手架模型

推荐回滚首先,input你的terminal。

 rake db:rollback 

添加摧毁脚手架('d'代表'摧毁')

 rails d scaffold name_of_scaffold 

享受你的代码。

你需要首先通过做rake db来回滚迁移:rollback(如果有)然后销毁脚手架

 rails d scaffold foo 

当我们生成脚手架时,将创build以下文件:

命令: rails generate scaffold Game

创build的文件:

 > 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 

如果之后我们已经运行了迁移,那么我们必须首先回滚迁移,因为删除脚手架也会删除迁移文件,我们将无法恢复迁移。

Incase我们已经运行迁移:

 rake db:rollback 

在此之后,我们可以安全地移除这个commad的脚手架。

 rails d scaffold Game 

该命令将删除项目中脚手架创build的所有文件。

任何时候你运行rails g ,你可以通过运行rails d (destroy)来取消你所生成的东西。 如果你已经运行了rake db:migrate ,你需要在破坏之前运行rake db:rollback 🙂

情况1:如果只运行这个命令来生成脚手架 –

 rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE Ex - rails generate scaffold User name:string address:text 

但到现在为止,你并没有像迁移那样运行任何命令

 rake db:migrate 

那么你应该只需要运行这个命令 –

 rails destroy scaffold User name:string address:text 

情况2:如果您已经运行(脚手架和迁移)通过下面的命令,如 –

 rails generate scaffold User name:string address:text rake db:migrate 

那么你应该需要运行第一个回滚迁移命令,然后像下面那样销毁脚手架 –

 rake db:rollback rails destroy scaffold User name:string address:text 

所以这样我们可以撤销脚手架。 我们也可以使用d作为摧毁g作为生成捷径。

是的, scaffold本身和所有合并它的东西。

destroy命令与generate相反,将撤销一个。 只要传递它的名字就像generate ,它会从你的项目中删除:

 rails generate scaffold posts title:string content:text rails destroy scaffold posts title:string content:text 

要生成脚手架:

 rails generate scaffold abc 

为了恢复这个脚手架:

 rails destroy scaffold abc 

如果您已经运行迁移,只需回滚

 rake db:rollback STEP=1 
 rails g scaffold MyFoo 

用于生成和

 rails d scaffold MyFoo 

去除

提供基于git的另一个解决scheme

开始一个新的项目

 rails new project_name cd project_name 

初始化git

 git init git commit -m "initial commit" 

创build一个脚手架

 rails g scaffold MyScaffold rake db:migrate 

回滚脚手架

 rake db:rollback git reset --hard git clean -f -d 

导轨[选项] scaffold scaffold_name

选项

 g generate d destroy 

如果你这样做

 rails g scaffold myFoo 

然后反转回来使用

 rails d scaffold MyFoo