我有大约15种或多或少复杂的模型。其中我想跟踪这些变化。什么是最简单的方法?保存后/更新触发器?
性能很重要,但如果有一种复杂度低但性能下降的方法,我会这样做。
顺便说一句:我不想使用存储过程。 (虽然我可能,如果有一种非常简单的方法可以这么做......)
谢谢,菲利普
答案 0 :(得分:0)
有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"
答案 1 :(得分:0)
您可能还想查看ActiveRecord提供的Dirty objects开箱即用。这使您能够在保存过程中处理对象,以便将更改记录到单独的表中。