有什么方法可以在Rails中“撤消”脚手架命令的影响吗?
有什么方法可以在Rails中“撤消”脚手架命令的影响吗?
Answers:
首先,如果您已经运行了scaffold
命令生成的迁移,则必须先执行回滚。
rake db:rollback
您可以使用以下方法创建脚手架:
rails generate scaffold MyFoo
(或类似),您可以使用删除/撤消它
rails destroy scaffold MyFoo
这将删除所创建的所有文件generate
,但不会删除您可能手动进行的任何其他更改。
rake db:rollback
在破坏脚手架之前,请不要忘记。如果没有其他迁移,除了脚手架之前的迁移,这将破坏/删除表。
git status
和/或git diff
,以查看destroy命令是否丢失了任何内容。
Rishav Rastogi是正确的,并且在rails 3.0或更高版本中:
轨道产生支架...
铁轨破坏脚手架...
rake db:rollback
之前,rails destroy scaffold
或者如果它不是您耙过的最后一个db:migrate:down VERSION=20080906120000
,则可以在db / migrate中找到其名称之前的编号
如果只想查看生成器将创建的文件,则可以传递生成器--pretend或-p选项。
因此,您应该遵循Process来撤消rails 4中的脚手架。运行Command如下:
rails d scaffold FooBar
rake db:rollback
rake db:migrate
创建完上述脚手架后,you_had_run_是否?而已!
干杯!
首先,
如果您已经运行过rake db:migrate,则必须执行rake db:rollback销毁表
,则,然后才能运行
rails d脚手架型号
是的,它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 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
如果我们在此之后运行迁移,那么我们必须先回滚迁移,因为删除脚手架也将删除迁移文件,并且我们将无法还原该迁移。
如果我们运行了迁移:
rake db:rollback
之后,我们可以安全地卸下这个脚手架。
rails d scaffold Game
此命令将删除您的项目中由脚手架创建的所有文件。
情况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用于生成作为快捷方式。
rails g scaffold MyFoo
用于生成和
rails d scaffold MyFoo
用于去除