提问



有没有办法在Rails中撤消脚手架命令的效果?

最佳参考


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


rake db:rollback


您可以使用以下方法创建脚手架:


rails generate scaffold MyFoo 


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


rails destroy scaffold MyFoo


这将删除generate创建的所有文件,但不会删除您手动进行的任何其他更改。

其它参考1


Rishav Rastogi是正确的,并且使用rails 3.0或更高版本:


rails generate scaffold ...


rails destroy scaffold ...

其它参考2


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


rails generate xxx


通过


rails destroy xxx


例如,这将生成器应用于迁移,脚手架,模型等

其它参考3


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

其它参考4


最好的方法是:


destroy rake db:  rake db:rollback


对于脚手架:


rails destroy scaffold Name_of_script

其它参考5


rails d scaffold <scaffoldname>


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

其它参考6


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


rake db:rollback


然后


rails d scaffold

其它参考7


要生成脚手架:


rails generate scaffold xyz


要恢复脚手架:


rails destroy scaffold xyz

其它参考8


Rails破坏名称


rake db:rollback

其它参考9


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


rails destroy scaffold 'scaffoldname'
rake db:rollback

其它参考10


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


rails generate scaffold MODEL_GOES_HERE


对于在rails中撤消脚手架 -


rails destroy scaffold MODEL_GOES_HERE

其它参考11


因此,您应该按照以下步骤撤消rails中的scaffolding 4.运行Command如下:



  1. rails d scaffold FooBar

  2. rake db:rollback如果you_had_run _ rake db:migrate在创建上述脚手架后?



而已!


干杯!

其它参考12


用这个


rails d scaffold MODEL_NAME

rake db:rollback

其它参考13


首先,您必须执行 rake db:rollback 来销毁表格
如果您已经运行 rake db:migrate ,那么您就可以运行了


rails d scaffold模型

其它参考14


建议回滚首先,输入您的终端。


rake db:rollback


添加破坏脚手架(d代表破坏)


rails d scaffold name_of_scaffold


享受你的代码。

其它参考15


您需要首先通过执行rake db:rollback来回滚迁移(如果有的话)
然后通过破坏脚手架


rails d scaffold foo

其它参考16


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


命令: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也会删除迁移文件,我们将无法恢复迁移。


如果我们运行了迁移:


rake db:rollback


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


rails d scaffold Game


此命令将删除项目中scaffold创建的所有文件。

其它参考17


任何时候运行rails g,你可以通过运行rails d(销毁)来删除你已经生成的东西。如果你已经运行rake db:migrate,你需要运行rails g。 53]]在摧毁之前:)

其它参考18


案例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 


然后你应该运行第一个rollback migration命令然后破坏脚手架,如下所示 -


rake db:rollback

rails destroy scaffold User name:string address:text


所以以这种方式,我们可以撤消脚手架。此外,我们可以将 d 用于销毁,将 g 用于生成作为快捷方式。

其它参考19


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


destroy命令与generate相反,将撤消一个。只需将名称与generate相同的方式传递给它,它就会从你的项目中删除:


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

其它参考20


要生成脚手架:


rails generate scaffold abc


要恢复此脚手架:


rails destroy scaffold abc


如果您已为其运行迁移,则只需回滚


rake db:rollback STEP=1

其它参考21


rails g scaffold MyFoo 


用于生成和


rails d scaffold MyFoo


删除

其它参考22


提供者另一种基于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

其它参考23



  rails [[option]] scaffold scaffold_name



选项


g    generate
d    destroy


如果你这样做


rails g  scaffold myFoo


然后使用反转它


rails d scaffold MyFoo