我正在尝试向PaperTrail::Version添加一个验证,它将阻止敏感数据存储在versions表中如果忘记清理模型中的has_paper_trail调用,则会得到许多明显的错误。
如果我在config/initializers/paper\u trail中添加了一个自定义验证器,它可以工作一段时间然后PaperTrail开始以其默认行为运行,并且我的方法未定义。
示例代码:
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version
# Ensure no sensitive values end up in the versions table
validate :prohibited_attributes
...
最佳答案
尝试自定义版本类参见文档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!
是个好主意。不知道为什么那对你不起作用。希望这是一个解决办法。快乐的(纸)轨迹!
关于ruby - 是否将ActiveRecord验证添加到PaperTrail的Version模型中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41104520/