ruby activerecord如何使用alternate updated_at列

时间:2011-03-02 20:35:43

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

我正在尝试将Rails3与现有的数据库架构一起使用。时间戳字段updated_at和created_at需要映射到db上创建和修改。

有没有办法告诉activerecord使用备用列名?

先谢谢你,克里斯

修改

可以通过将其放在模型目录中的文件中来完成:

module ActiveRecord

  module Timestamp
    def timestamp_attributes_for_update #:nodoc:
      [:modified, :updated_on]
    end

    def timestamp_attributes_for_create #:nodoc:
      [:created, :created_on]
    end
  end

end

1 个答案:

答案 0 :(得分:1)

如果不在ActiveRecord:: Timestamp中覆盖timestamp_attributes_for_update,我认为没有办法做到这一点。

一个简单的解决方法是在模型中使用before_update回调。

before_update :set_modified_time

private
  def set_modified_time
    self.modified = Time.now
  end