created_at被save覆盖?

时间:2014-07-03 08:31:22

标签: ruby-on-rails ruby validation date save

您好我有一个继承自ActiveRecord的对象,并在初始化时传递created_at字段。

o = Object.new(created_at: "2014-01-03 03:27:18")
o.save

当我检查o.created_at时,它会给我Time.now时间戳,而不是我传入的时间。不应该默认为我传递的created_at字段吗?

1 个答案:

答案 0 :(得分:2)

将记录插入表中时,

created_on字段会自动更新。您可以通过覆盖timestamp_attributes_for_update方法来更改此选项:

class Object < ActiveRecord::Base

  before_save do
    self.created_at ||= DateTime.now
  end

  protected

  def timestamp_attributes_for_create
    [:updated_at]
  end
end