私は多かれ少なかれ複雑なモデルを約15個持っています。それらのうち、変更を追跡したいと思います。最も簡単な方法は何ですか?保存/更新後のトリガー?
パフォーマンスは重要ですが、複雑さは低いがパフォーマンスが低下する方法があれば、それを実行します。
ところで、ストアド プロシージャは使いたくありません。(そうするかもしれませんが、本当に簡単な方法があれば...)
ありがとう、フィリップ
私は多かれ少なかれ複雑なモデルを約15個持っています。それらのうち、変更を追跡したいと思います。最も簡単な方法は何ですか?保存/更新後のトリガー?
パフォーマンスは重要ですが、複雑さは低いがパフォーマンスが低下する方法があれば、それを実行します。
ところで、ストアド プロシージャは使いたくありません。(そうするかもしれませんが、本当に簡単な方法があれば...)
ありがとう、フィリップ
あなたがやりたいことをしているように見えるverstal_versionsがあります。
指定したすべてのモデルにバージョン管理を追加します。たとえば、次を参照してください。
class User < ActiveRecord::Base
versioned
validates_presence_of :name
end
次に、モデルのバージョンを次のように使用できます。
>> u = User.create(:name => "Steve Richert")
=> #<User first_name: "Steve", last_name: "Richert">
>> u.version
=> 1
>> u.update_attribute(:name, "Stephen Richert")
=> true
>> u.name
=> "Stephen Richert"
>> u.version
=> 2
>> u.revert_to(10.seconds.ago)
=> 1
>> u.name
=> "Steve Richert"
また、ActiveRecord によって提供されるDirty オブジェクトをすぐに確認することもできます。これにより、保存中のオブジェクトを操作して、変更を別のテーブルに記録できるようになります。