【发布时间】:2011-11-21 14:47:12
【问题描述】:
我在 MYSQL 中有一个名为“date_added”的字段。我希望这个值 Time.now.to_i 作为其默认值(换句话说,添加记录的时间)。我知道在 ActiveRecord 中免费添加了一个类似的列,但是忽略了...如何添加此默认值?
:默认 => ???
【问题讨论】:
标签: ruby-on-rails
我在 MYSQL 中有一个名为“date_added”的字段。我希望这个值 Time.now.to_i 作为其默认值(换句话说,添加记录的时间)。我知道在 ActiveRecord 中免费添加了一个类似的列,但是忽略了...如何添加此默认值?
:默认 => ???
【问题讨论】:
标签: ruby-on-rails
你可以使用before_create:
class SomeModel < ActiveRecord::Base
before_create :set_date_added
protected
def set_date_added
self.date_added = Time.now.to_i
end
end
在第一次保存对象之前调用它,正是您想要的条件。
或者,您可以使用 hack 将默认活动记录 created_at 重命名为 date_added,方法是按照此处的答案:Renaming the created_at, updated_at columns of ActiveRecord/Rails
有关回调的更多信息,请参阅http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html。
【讨论】: