我已经开始在Rails 3应用程序中使用audited gem。
它工作正常,但我有一个问题,我有一个大文本列的表。 我不希望将此列中的数据保存在审核表的“audited_changes”中,因为该表会大小爆炸。
我知道我可以使用以下内容来禁止对该列进行审核:except =>:my_big_text_column
总而言之,我做想知道用户已编辑了文字,但我不希望每次都保存该文本的副本。如果我禁止对该列进行审核,那么如果他们编辑该列,我将完全没有审核。
答案 0 :(得分:5)
我找到了一个适用于我想要审核的答案。 我刚刚创建了自己的Audited :: Adapters :: ActiveRecord :: Audit版本并将其放在初始化器中。
我添加了一个before_save方法来操作audited_changes哈希。 我只是改变了哈希,只是说'#34;改变了#34;对于指定的大文本列。 似乎做我需要的。
module Audited
module Adapters
module ActiveRecord
class Audit < ::ActiveRecord::Base
before_save :remove_text_fields
def remove_text_fields
if self.audited_changes.include?("case_notes")
self.audited_changes["case_notes"]="changed"
end
end
end
end
end
end