有什么方法可以“撤消”Rails 中脚手架命令的效果?
首先,如果您已经运行了 scaffold
命令生成的迁移,则必须先执行回滚。
rake db:rollback
您可以使用以下方法创建脚手架:
rails generate scaffold MyFoo
(或类似的),您可以使用销毁/撤消它
rails destroy scaffold MyFoo
这将删除 generate
创建的所有文件,但不会删除您手动进行的任何其他更改。
Rishav Rastogi 是对的,并且使用 rails 3.0 或更高版本:
rails generate scaffold ...
rails destroy scaffold ...
rails destroy scaffold
之前运行 rake db:rollback
,或者如果它不是您执行 rake db:migrate:down VERSION=20080906120000
的最后一个,您可以在 db/migrate 中找到其名称之前的数字
您可以撤消您所做的任何事情
rails generate xxx
经过
rails destroy xxx
例如,这将生成器应用于迁移、脚手架、模型...等
如果您只想查看生成器将创建的文件,您可以传递生成器 --pretend 或 -p 选项。
最好的方法是:
destroy rake db: rake db:rollback
对于脚手架:
rails destroy scaffold Name_of_script
第一次,如果你有生成脚手架,你可以检查你的数据库迁移。你必须销毁它们来清理你的数据库
rake db:rollback
然后
rails d scaffold
rails d scaffold <scaffoldname>
此外,请确保撤消通过回滚或到特定版本所做的迁移。
生成脚手架:
rails generate scaffold xyz
要恢复脚手架:
rails destroy scaffold xyz
Rails 破坏名称
rake db:rollback
用于在铁轨中生成脚手架 -
rails generate scaffold MODEL_GOES_HERE
用于撤消导轨中的脚手架 -
rails destroy scaffold MODEL_GOES_HERE
rails g
和 rails d
。
在销毁脚手架后,您也需要回滚迁移
rails destroy scaffold 'scaffoldname'
rake db:rollback
因此,您应该按照流程撤消rails 4中的脚手架。运行命令如下:
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
添加销毁脚手架(“d”代表“销毁”)
rails d scaffold name_of_scaffold
享受您的代码。
首先,如果您已经运行 rake db:migrate,则必须执行 rake db:rollback 来销毁表,然后您可以运行
rails d 脚手架型号
您需要先通过执行 rake db:rollback if any 来回滚迁移,然后通过以下方式销毁脚手架
rails d scaffold foo
是的,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
提供另一种基于 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 [选项] 脚手架脚手架名称
选项
g generate
d destroy
如果你这样做
rails g scaffold myFoo
然后使用反转它
rails d scaffold MyFoo
生成:
rails g scaffold post
rake db:migrate
删除:
rake db:rollback
rails d scaffold post
当我们生成脚手架时,将创建以下文件:
命令: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
此命令将删除项目中脚手架创建的所有文件。
每当您运行 rails g
时,您都可以通过运行 rails d
(销毁)来将其撤消以删除您生成的内容。如果您已经运行 rake db:migrate
,则需要在销毁之前运行 rake db:rollback
:)
案例一:如果只运行这个命令生成脚手架——
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
用于去除
不定期副业成功案例分享
rake db:rollback
。如果除了脚手架的迁移之外没有其他迁移,这将破坏/删除表。git status
和/或git diff
,查看 destroy 命令是否遗漏任何内容。