這樣做的原因後的歷史得到的反饋是否有一個「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