首页 > 解决方案 > 如何在 Ruby on Rails 中更改数据更改的时间戳

问题描述

我希望在我的 Ruby on Rails 应用程序中更新任何特定字段时进行时间戳更新。

我有一个"dprojects"表,其中有一列"status""status_date"

我该如何做到这一点,以便如果/当状态更新时,status_date也将更改为最近更新状态的日期?

标签: ruby-on-railsruby

解决方案


如果状态列被更改,您可以利用 ActiveRecord 的脏属性跟踪来设置状态日期。使用 before_save 回调,然后根据需要设置状态日期:

class MyModel < ActiveRecord::Base
  before_save :set_status_date

  def set_status_date
    self.status_date = Time.now if status_changed?
  end
end

推荐阅读