0

这篇文章的原因是为了获得关于是否有一种“Rails 方式”来做我正在尝试的事情的反馈。我这样做的方式似乎有点笨拙并且容易出现人为错误。

我有多个表,我想存储历史记录,包括更新记录的时间和日期。谁更新它并不重要。

目前,我整理了以下[尚未测试,某些语法可能是错误的],但似乎其他人会有这种需求并且会有更好的方法来做到这一点,是否有一种方法在数据库级别而不是在我不知道的其他一些内置方法/回调上实现它。

模型 CreateDdiPlanHistorical 的生成包括在 create_history 方法中下面看到的其他字段之上的 updated_at:datetime,我的理解是应该自动填充正在添加或修改的历史表中的任何记录。

(为了清楚起见,去掉了验证和关联)

class CallDdiPlan < ActiveRecord::Base
  attr_accessible :active, :ddi_count, :plan_name, :price

  after_save :create_history

  private

    def create_history
      CallDdiPlanHistorical.create({:active => this.active, :ddi_count => this.ddi_count, :plan_name => this.plan_name, :price => this.price, :call_ddi_plan_id => this.id})
    end

end
4

1 回答 1

0

你可以做一些自己动手的解决方案,但如果你真的想让老板开心,请使用经过审核的 gem:

https://github.com/collectiveidea/audited
于 2012-05-16T04:30:21.650 回答