这样做的原因后的历史得到的反馈是否有一个“Rails的路”做什么我尝试的。我这样做的方式似乎有点笨重,容易出现人为错误。的Rails 3 after_save的跟踪更新
我有我想要存储包括时间的历史和日期的记录被更新多个表。谁更新并不重要。
目前,我已经将以下内容放在一起[尚未测试,一些语法可能是错误的],但似乎其他人会有这种需求,并且会有更好的方法来做到这一点,是一种在数据库级别实现这一点的方法,或者我不知道的其他内置方法/回调。
生成的模型CreateDdiPlanHistorical包括updated_at:datetime在create_history方法下面看到的其他字段的顶部,我的理解是应该自动填充历史表中的任何记录被添加或修改。
(验证和协会剥离出来的清晰度)
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
你需要每一个更新的历史或者只是最近的一个? –
每次更新。这将用于生成历史结算报告,所以我需要知道价格何时发生变化以及它们始终处于何种状态。 – bdx