有没有办法在Rails中“撤销”脚手架命令的效果?
当前回答
Rails销毁名称
rake db:rollback
其他回答
要生成脚手架:
rails generate scaffold xyz
恢复脚手架:
rails destroy scaffold xyz
首先,如果您已经运行了由scaffold命令生成的迁移,那么您必须首先执行回滚。
rake db:rollback
你可以使用以下方法创建脚手架:
rails generate scaffold MyFoo
(或类似),并且您可以使用
rails destroy scaffold MyFoo
这将删除generate创建的所有文件,但不会删除手动进行的任何其他更改。
案例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表示生成。
如果您只想查看生成器将创建的文件,您可以传递generator -pretend或-p选项。
提供了另一种基于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
推荐文章
- Ruby中没有增量操作符(++)?
- 如何得到一个特定的输出迭代哈希在Ruby?
- Ruby正则表达式中\A \z和^ $的区别
- 我能在视图中得到当前控制器的名称吗?
- __FILE__在Ruby中是什么意思?
- Paperclip::Errors::MissingRequiredValidatorError with Rails
- 如何表达一个NOT IN查询与ActiveRecord/Rails?
- Ruby on Rails form_for选择字段与类
- Ruby:如何将散列转换为HTTP参数?
- 在Rails 4中自动加载库文件
- 在ROR迁移期间,将列类型从Date更改为DateTime
- 有没有一种方法可以获得Rails应用程序中所有模型的集合?
- 把一个元素推到数组开头最简单的方法是什么?
- ActiveRecord:大小vs计数
- Ruby的dup和克隆方法有什么区别?