有没有一种方法可以“撤销”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文件夹中通过名称找到它之前的版本号。 - Travis Pessetto您可以使用
undo
命令来撤销您所做的任何操作。
rails generate xxx
通过
rails destroy xxx
例如,这将生成器应用于迁移、脚手架、模型等。如果你只是想查看生成器将创建的文件,可以通过向生成器传递--pretend或-p选项来实现。
最好的方式是:
destroy rake db: rake db:rollback
针对 Scaffold:
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 destroy name
rake db:rollback
在Rails中生成脚手架的方法:
rails generate scaffold MODEL_GOES_HERE
rails destroy scaffold MODEL_GOES_HERE
rails g
和 rails d
。 - steve klein
rake db:rollback
命令。如果除了脚手架迁移文件外没有其他迁移文件,该命令将销毁/删除数据表。 - Yakob Ubaidigit status
和/或git diff
,以查看销毁命令是否漏掉了什么。 - aaron-coding