有没有办法在Rails中“撤销”脚手架命令的效果?
当前回答
如果您只想查看生成器将创建的文件,您可以传递generator -pretend或-p选项。
其他回答
Rishav Rastogi是对的,rails 3.0或更高版本:
rails generate scaffold ...
rails destroy scaffold ...
当我们生成脚手架时,会创建以下文件:
命令:rails生成脚手架游戏
创建的文件:
> 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
如果我们在此之后运行了迁移,那么我们必须首先回滚迁移,因为删除脚手架也会删除迁移文件,我们将无法恢复迁移。
如果我们已经运行了迁移:
rake db:rollback
在此之后,我们可以通过这个命令安全地移除脚手架。
rails d scaffold Game
该命令将删除项目中由脚手架创建的所有文件。
要生成脚手架:
rails generate scaffold abc
恢复脚手架:
rails destroy scaffold abc
如果您已经为它运行了迁移,只需回滚即可
rake db:rollback STEP=1
如果您有generate scaffold,您可以第一次检查数据库迁移。 您必须销毁它们以清理数据库
rake db:rollback
then
rails d scaffold
任何时候运行rails g,都可以通过运行rails d (destroy)来删除生成的内容。如果你已经运行rake db:migrate,你需要在销毁之前运行rake db:rollback:)
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 是否可以在MiniTest中运行单个测试?
- 如何在Ruby中生成a和b之间的随机数?
- ActiveRecord OR查询
- 无法安装gem -未能建立gem本地扩展-无法加载这样的文件——mkmf (LoadError)
- 如何在Ruby中创建文件
- 什么是Ruby文件。开放模式和选项?
- Ruby数组到字符串的转换
- 如何分割(块)一个Ruby数组成X元素的部分?
- Ruby中“or”和||的区别?
- 在Rails中使用user_id:integer vs user:references生成模型
- 如何测试参数是否存在在轨道
- 验证多个列的唯一性
- Rails:在where语句中使用大于/小于
- Rails:如何为Rails activerecord的模型中的属性创建默认值?