如何使Rails中的timestamps列接受空值?

时间:2013-06-24 20:49:11

标签: ruby-on-rails ruby-on-rails-3 activerecord

如何使基于活动记录的表中的时间戳列不需要值?

即。现在,当您运行迁移时:

class CreateInstructors < ActiveRecord::Migration
  def change
    create_table :instructor do |t|
      t.name
      t.timestamps
    end
  end
end

created_atupdated_at不接受空值。你怎么还能保留时间戳但允许空值?

2 个答案:

答案 0 :(得分:1)

不赞成将时间戳作为null,这没有意义。但是,如果你愿意,你可以让你的迁移接受零值

t.column  :created_at , :timestamp, :null => true
t.column  :updated_at , :timestamp, :null => true

然后你可以创建一个after回调或者你想要使它为null的任何条件

答案 1 :(得分:-1)

为什么要为created_at或updated_at时间戳设置空值?

我建议创建另一个字段来处理你正在处理的任何情况,可能是一个布尔或附加的时间戳字段,而不是重新利用这些保留字段。

但是我不知道你的用例...