有人可以解释一下接下来的事情有什么区别吗?
- def self.up
- 向上定义
- def self.down
- 向下定义
self.up并up包含迁移时运行的代码rake db:migrate。self.up是旧版本的up. 我不确定他们是什么时候引入的,但是直到 3.0,他们才使用self.up.
self.down并且down应该包含反转up方法效果的代码。因此,如果您在 上创建了一个表up,则应该将该表放在down. 这些方法在运行时被调用rake db:rollback。
实际上,有一种名为迁移的新方法,change如果 Rails 很容易确定与创建表相反的操作,通常会使用该方法。
def self.up是类方法(您可以将其发送给类:)Klass.up,def up是普通方法(您可以将其发送给对象)。下也一样。