我是Rails新手--我先是创建了一个新的rails应用程序rails new test,然后是rails generate scaffold Name column1:datatype column2:datatype
在本教程中,打开12345678timestamp_create_names.rb文件后,我使用的是def change,但本教程使用的是def self.up和def self.down
为什么会这样呢?有什么不同呢?我现在应该编辑我的应用程序吗?那在未来呢?
发布于 2013-04-04 14:49:42
迁移已从rails2更改为rails3,现在rails3足够智能,能够理解它应该如何响应您的命令
因此,可以将change看作是up和down的组合
如果你说
rake db:migrate它会将其视为up
rake db:rollback它会将其视为down
read more here
发布于 2013-04-04 14:53:56
Rails 3.1为迁移引入了新的更改方法。
See Rails guides
Rails 3.1通过提供新的更改方法使迁移更加智能。这种方法是编写构造迁移(添加列或表)的首选方法。迁移知道如何迁移您的数据库,并在迁移回滚时反转数据库,而无需编写单独的down方法。
因此,您的教程可能涵盖了Rails3.0,而不是Rails2,因为您已经使用过Rails 3命令来创建新的应用程序。
https://stackoverflow.com/questions/15804268
复制相似问题