この投稿の理由は、私が試みていることを行うための "Rails Way" があるかどうかについてのフィードバックを得ることです。私のやり方は少しぎこちなく、人的ミスを起こしやすいようです。
レコードが更新された日時を含む履歴を保存したい複数のテーブルがあります。誰が更新するかは重要ではありません。
現時点では、次のようにまとめました [まだテストされていません。構文が間違っている可能性があります]。代わりにデータベースレベルでこれを実装するか、私が気付いていない他の組み込みメソッド/コールバックを実装します。
モデル 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