0

我是 Rails 新手 - 我开始了一个新的 Rails 应用程序rails new test,然后rails generate scaffold Name column1:datatype column2:datatype

在本教程中,一旦我打开12345678timestamp_create_names.rb我拥有的文件def change,但本教程同时具有def self.updef self.down

这是为什么?有什么区别?我现在应该编辑我的应用程序吗?而在未来呢?

4

2 回答 2

2

迁移已从 rails2 更改为 rails3,现在 rails3 足够聪明,可以理解它应该如何响应您的命令

所以,考虑change作为和的up组合down

如果你说

rake db:migrate它会将其视为up

rake db:rollback它会将其视为down

在这里阅读更多

于 2013-04-04T06:49:41.730 回答
1

Rails 3.1 为迁移引入了新的更改方法。

请参阅 Rails 指南

Rails 3.1 通过提供一种新的更改方法使迁移更智能。此方法适用于编写建设性迁移(添加列或表)。迁移知道如何迁移你的数据库,并在迁移回滚时对其进行反转,而无需编写单独的 down 方法。

因此,您的教程可能涵盖 Rails 3.0 而不是 Rails 2,因为您已经使用 Rails 3 命令来创建新应用程序。

于 2013-04-04T06:53:56.480 回答