目前,我已使用PaperTrail实施了Rails数据审核应用。
我为每个create
,update
和destroy
行动添加了新版本。
问题是,我的模型中有一个after_create
回调,我希望PaperTrail忽略它。
目前,当我创建新记录时,会创建两个版本。一个是create事件,另一个是我的回调的更新事件。
我想要的只是在这里创建一个版本,即创建事件的一个版本。
具体来说,我的回调只是在我的记录中添加一个slug,一个别名,我不希望向用户显示这样的更改。
我想知道是否有办法这样做。
任何建议都表示赞赏。
谢谢,
答案 0 :(得分:5)
我认为您可以使用without_versioning
,
执行给定的方法或块而不创建新版本
user.without_versioning { |obj| obj.update_attributes(attribute: 'new_value') }
答案 1 :(得分:3)
without_versioning
已在v10中删除,如here所述。
改为使用:
PaperTrail.request(enabled: false) do
# no versions created
end
或仅针对特定型号:
PaperTrail.request.disable_model(Banana)
# changes to Banana model do not create versions,
# but eg. changes to Kiwi model do.
PaperTrail.request.enable_model(Banana)