脚手架 - rails生成 - 数据在类中迁移def

时间:2013-04-04 06:45:09

标签: ruby-on-rails ruby-on-rails-3 scaffolding self

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

在教程中,我打开12345678timestamp_create_names.rb文件后我def change,但教程同时包含def self.updef self.down

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

2 个答案:

答案 0 :(得分:2)

迁移已从rails2更改为rails3,现在rails3足够智能,可以了解它应如何响应您的命令

因此,请将change视为updown的组合

如果你说

rake db:migrate它会将其视为up

rake db:rollback它会将其视为down

read more here

答案 1 :(得分:1)

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

See Rails guides

  

Rails 3.1通过提供新的更改方法使迁移变得更加智能。   这种方法是编写建设性迁移的首选(添加   列或表)。迁移知道如何迁移数据库   并且在不需要回滚迁移时将其反转   写一个单独的向下方法。

因此,您的教程可能涵盖了Rails 3.0,但不包括Rails 2,因为您已经使用Rails 3命令创建了一个新的应用程序。