簡體   English   中英

將更改記錄到數據庫

[英]Log changes to Database

我大約有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對象 這使您能夠在對象處於保存過程中使用它們,以便您可以將更改記錄到單獨的表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM