有人可以解释一下接下来的事情有什么区别吗?
- 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
是普通方法(您可以将其发送给对象)。下也一样。