即使再小心,在开发 Rails 应用程序过程中仍然可能犯错。幸运的是,Rails 提供了一些工具能够帮助你进行复原。
举例来说,一个常见的情况是,你想更改控制器的名字,这时你就要撤销生成的代码。生成控制器时,除了控制器文件本身之外,Rails 还会生成很多其他的文件(参见代码 3.4)。撤销生成的文件不仅仅要删除主要的文件,还要删除一些辅助的文件。(事实上,我们还要撤销对 routes.rb
文件自动做的一些改动。)在 Rails 中,我们可以通过 rails destroy
命令完成这些操作。一般来说,下面的两个命令是相互抵消的:
$ rails generate controller FooBars baz quux
$ rails destroy controller FooBars baz quux
$ rails generate model Foo bar:string baz:integer
生成的模型可通过下面的命令撤销:
$ rails destroy model Foo
$ rake db:migrate
我们可以使用下面的命令撤销一个迁移操作:
$ rake db:rollback
如果要回到最开始的状态,可以使用:
$ rake db:migrate VERSION=0
你可能已经猜到了,将数字 0 换成其他的数字就会回到相应的版本状态,这些版本数字是按照迁移顺序排序的。