在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.运行命令如下:
-
rails d scaffold FooBar
-
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