【问题标题】:How to set default value of column to current time with ActiveRecord?如何使用 ActiveRecord 将列的默认值设置为当前时间?
【发布时间】:2011-11-21 14:47:12
【问题描述】:

我在 MYSQL 中有一个名为“date_added”的字段。我希望这个值 Time.now.to_i 作为其默认值(换句话说,添加记录的时间)。我知道在 ActiveRecord 中免费添加了一个类似的列,但是忽略了...如何添加此默认值?

:默认 => ???

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你可以使用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。

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      相关资源
      最近更新 更多