我试图向PaperTrail :: Version添加验证,以防止敏感数据存储在版本表中。如果您忘记在模型中清理has_paper_trail调用,那么您的想法就会出现很多明显的错误。
如果我在config / initializers / paper_trail中添加自定义验证器,它可以工作......一段时间。然后PaperTrail开始使用其默认行为,我的方法未定义。
示例代码:
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version
# Ensure no sensitive values end up in the versions table
validate :prohibited_attributes
...
答案 0 :(得分:0)
尝试自定义版本类。请参阅文档section 6.a. Custom Version Classes。
6.A。自定义版本类
您可以使用
:class_name
指定自定义版本子类 选项:class PostVersion < PaperTrail::Version # custom behaviour, e.g: self.table_name = :post_versions end class Post < ActiveRecord::Base has_paper_trail :class_name => 'PostVersion' end
使用PaperTrail::Rails::Engine.eager_load!
是一个好主意。不知道为什么那对你不起作用。希望这是一种解决方法。
快乐(纸)小径!