有没有办法在Rails中“撤消”脚手架命令的效果?
每次运行 rails g 时,都可以通过运行 rails d (destroy)来撤消它,以删除您生成的内容 . 如果您已经运行 rake db:migrate ,则需要在销毁之前运行 rake db:rollback :)
rails g
rails d
rake db:migrate
rake db:rollback
First ,如果您已经运行了 scaffold 命令生成的迁移,则必须先执行回滚 .
scaffold
您可以使用以下方法创建脚手架:
rails generate scaffold MyFoo
(或类似的),和 you can destroy/undo 它使用
rails destroy scaffold MyFoo
这将删除 generate 创建的所有文件,但不会删除您手动进行的任何其他更改 .
generate
Rishav Rastogi是正确的,并且使用rails 3.0或更高版本:
rails generate scaffold ...
rails destroy scaffold ...
你可以撤消你做的任何事情
rails generate xxx
通过
rails destroy xxx
例如,这将生成器应用于迁移,脚手架,模型等
如果您只想查看生成器将创建的文件,您可以传递生成器--pretend或-p选项 .
最好的方法是:
destroy rake db: rake db:rollback
对于脚手架:
rails destroy scaffold Name_of_script
rails d scaffold <scaffoldname>
此外,请确保撤消通过回滚或特定版本进行的迁移 .
第一次,如果您已生成脚手架,则可以检查数据库迁移 . 你必须销毁它们来清理你的数据库
然后
rails d scaffold
要生成脚手架:
rails generate scaffold xyz
要恢复脚手架:
rails destroy scaffold xyz
Rails破坏名称
你也需要在销毁脚手架后回滚迁移
rails destroy scaffold 'scaffoldname' rake db:rollback
用于在轨道中生成脚手架 -
rails generate scaffold MODEL_GOES_HERE
对于在rails中撤消脚手架 -
rails destroy scaffold MODEL_GOES_HERE
因此,您应该按照以下步骤撤消rails中的scaffolding 4.运行Command如下:
rails d scaffold FooBar
rake db:rollback if you_had_run_ rake db:migrate 创建上述脚手架后?
而已!
干杯!
用这个
rails d scaffold MODEL_NAME rake db:rollback
首先,您必须执行 rake db:rollback 来销毁表格如果你已经运行 rake db:migrate 然后你就可以运行了
rails d scaffold Model
建议回滚首先,输入您的终端 .
添加破坏脚手架('d'代表'破坏')
rails d scaffold name_of_scaffold
享受你的代码 .
你需要首先通过执行rake db:rollback回滚迁移(如果有的话)然后通过删除脚手架
rails d scaffold foo
当我们生成脚手架时,将创建以下文件:
命令: rails generate scaffold Game
rails generate scaffold Game
创建的文件:
> 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
如果我们在此之后运行迁移,那么我们必须首先回滚迁移,因为删除scaffold也将删除迁移文件,我们将无法恢复该迁移 .
如果我们运行了迁移:
在此之后,我们可以通过这个commad安全地移除脚手架 .
rails d scaffold Game
此命令将删除项目中scaffold创建的所有文件 .
Case 1: 如果只运行此命令来生成脚手架 -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE Ex - rails generate scaffold User name:string address:text
但是直到现在你还没有运行任何迁移命令
那么你应该只需要运行这个命令 -
rails destroy scaffold User name:string address:text
Case 2: 如果您已通过以下命令运行(脚手架和移植),例如 -
rails generate scaffold User name:string address:text rake db:migrate
然后你应该需要运行第一个rollback migration命令然后破坏脚手架,如下所示 -
rake db:rollback rails destroy scaffold User name:string address:text
所以以这种方式,我们可以撤消脚手架 . 我们也可以使用 d 作为 destroy 和 g 作为 generate 作为快捷方式 .
是的, scaffold 本身和所有合并它的东西 .
destroy 命令与 generate 相反,将撤消一个 . 只需将名称传递给 generate ,就会从项目中删除它:
destroy
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的解决方案
开始一个新项目
rails new project_name cd project_name
初始化git
git init git commit -m "initial commit"
创建一个脚手架
rails g scaffold MyScaffold rake db:migrate
回滚脚手架
rake db:rollback git reset --hard git clean -f -d
rails [选项]脚手架scaffold_name
Option
g generate d destroy
如果你这样做
rails g scaffold myFoo
然后使用反转它
24 回答
每次运行
rails g
时,都可以通过运行rails d
(destroy)来撤消它,以删除您生成的内容 . 如果您已经运行rake db:migrate
,则需要在销毁之前运行rake db:rollback
:)First ,如果您已经运行了
scaffold
命令生成的迁移,则必须先执行回滚 .您可以使用以下方法创建脚手架:
(或类似的),和 you can destroy/undo 它使用
这将删除
generate
创建的所有文件,但不会删除您手动进行的任何其他更改 .Rishav Rastogi是正确的,并且使用rails 3.0或更高版本:
你可以撤消你做的任何事情
通过
例如,这将生成器应用于迁移,脚手架,模型等
如果您只想查看生成器将创建的文件,您可以传递生成器--pretend或-p选项 .
最好的方法是:
对于脚手架:
此外,请确保撤消通过回滚或特定版本进行的迁移 .
第一次,如果您已生成脚手架,则可以检查数据库迁移 . 你必须销毁它们来清理你的数据库
然后
要生成脚手架:
要恢复脚手架:
Rails破坏名称
你也需要在销毁脚手架后回滚迁移
用于在轨道中生成脚手架 -
对于在rails中撤消脚手架 -
因此,您应该按照以下步骤撤消rails中的scaffolding 4.运行Command如下:
rails d scaffold FooBar
rake db:rollback
if you_had_run_rake db:migrate
创建上述脚手架后?而已!
干杯!
用这个
首先,您必须执行 rake db:rollback 来销毁表格
如果你已经运行 rake db:migrate 然后你就可以运行了
rails d scaffold Model
建议回滚首先,输入您的终端 .
添加破坏脚手架('d'代表'破坏')
享受你的代码 .
你需要首先通过执行rake db:rollback回滚迁移(如果有的话)然后通过删除脚手架
当我们生成脚手架时,将创建以下文件:
命令:
rails generate scaffold Game
创建的文件:
如果我们在此之后运行迁移,那么我们必须首先回滚迁移,因为删除scaffold也将删除迁移文件,我们将无法恢复该迁移 .
如果我们运行了迁移:
在此之后,我们可以通过这个commad安全地移除脚手架 .
此命令将删除项目中scaffold创建的所有文件 .
Case 1: 如果只运行此命令来生成脚手架 -
但是直到现在你还没有运行任何迁移命令
那么你应该只需要运行这个命令 -
Case 2: 如果您已通过以下命令运行(脚手架和移植),例如 -
然后你应该需要运行第一个rollback migration命令然后破坏脚手架,如下所示 -
所以以这种方式,我们可以撤消脚手架 . 我们也可以使用 d 作为 destroy 和 g 作为 generate 作为快捷方式 .
是的,
scaffold
本身和所有合并它的东西 .destroy
命令与generate
相反,将撤消一个 . 只需将名称传递给generate
,就会从项目中删除它:要生成脚手架:
要恢复此脚手架:
如果您已为其运行迁移,则只需回滚
用于生成和
删除
提供者另一种基于git的解决方案
开始一个新项目
初始化git
创建一个脚手架
回滚脚手架
Option
如果你这样做
然后使用反转它