1

我有大约 15 个或多或少复杂的模型。其中我想跟踪这些变化。最简单的方法是什么?保存后/更新触发器?

性能很重要,但如果有一种方法复杂度低但性能降低,我会这样做。

顺便说一句:我不想使用存储过程。(虽然我可能会,如果有一个非常简单的方法来做到这一点......)

谢谢,菲利普

4

2 回答 2

0

您可能还想查看ActiveRecord 开箱即用提供的脏对象。这使您能够在对象正在保存的过程中使用它们,以便您可以将更改记录到单独的表中。

于 2011-11-07T18:00:36.870 回答
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"
于 2011-11-07T17:03:28.663 回答