1

由于 updated_at 列在更新时会查看所有属性,因此我想添加一个 new_updated_at ,我将决定它何时更新。

通过迁移插入的默认值我希望它是当前的 updated_at。

如何将迁移的默认值设置为同一行但另一列的值?

4

1 回答 1

6

我认为您必须手动进行初始化,up迁移中的一些 SQL 将处理它:

def up
    # Add the new column...
    connection.execute('update models set new_updated_at = updated_at')
end

当然,您必须models用您的真实表名替换。

您可能需要修改生成的迁移并将其拆分为单独的方法updown方法,但这应该不是问题。如果您不想这样做,请编写一个单独的迁移来初始化new_updated_at并将上述connection.execute调用放入该迁移的up方法中。

于 2013-01-07T22:20:13.627 回答