在Rails中撤消脚手架

Dan*_*iel 486 ruby ruby-on-rails scaffolding

有没有办法在Rails中"撤消"脚手架命令的效果?

Ris*_*ogi 766

首先,如果您已经运行了scaffold命令生成的迁移,则必须先执行回滚.

rake db:rollback
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法创建脚手架:

rails generate scaffold MyFoo 
Run Code Online (Sandbox Code Playgroud)

(或类似的),你可以使用它来销毁/撤消

rails destroy scaffold MyFoo
Run Code Online (Sandbox Code Playgroud)

这将删除generate您手动创建的所有文件,但不会删除任何其他更改.

  • 在你摧毁你的脚手架之前别忘了"rake db:rollback".如果除了脚手架之前的迁移之外没有其他迁移,这将破坏/删除表. (10认同)
  • 在某些情况下,仍然存在未从脚手架中删除的剩余文件.检查你的版本控制,例如`git status`和/或`git diff`,看看destroy命令是否遗漏了什么. (3认同)

小智 167

Rishav Rastogi是正确的,并且使用rails 3.0或更高版本:

rails generate scaffold ...
rails destroy scaffold ...

  • @femi桌子是用耙子做的.删除它的最好方法是在`rails destroy scaffold`之前运行`rake db:rollback`或者如果它不是你执行的最后一个`db:migrate:down VERSION = 20080906120000`你可以在它的名字之前找到它的名字. DB /迁移 (8认同)

the*_*fme 40

你可以撤消你所做的任何事情

rails generate xxx
Run Code Online (Sandbox Code Playgroud)

通过

rails destroy xxx
Run Code Online (Sandbox Code Playgroud)

例如,这将生成器应用于迁移,脚手架,模型等


小智 13

如果您只想查看生成器将创建的文件,您可以传递生成器--pretend或-p选项.


use*_*158 10

最好的方法是:

destroy rake db:  rake db:rollback
Run Code Online (Sandbox Code Playgroud)

对于脚手架:

rails destroy scaffold Name_of_script
Run Code Online (Sandbox Code Playgroud)


小智 8

第一次,如果您已生成脚手架,则可以检查数据库迁移.你必须销毁它们来清理你的数据库

rake db:rollback
Run Code Online (Sandbox Code Playgroud)

然后

rails d scaffold
Run Code Online (Sandbox Code Playgroud)


小智 8

rails d scaffold <scaffoldname>
Run Code Online (Sandbox Code Playgroud)

此外,请确保撤消通过回滚或特定版本进行的迁移.