0

この投稿の理由は、私が試みていることを行うための "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
4

1 に答える 1

0

独自のソリューションを作成することもできますが、本当に上司を喜ばせたい場合は、監査済みの gem を使用してください。

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