我已经将paper_trail与项目模型集成在一起。
正常流量:-
每当更新模型中的项目记录时,就会在版本表中创建具有更改的新版本。
条件: -
无论何时更新任何项目,而不是在项目模型中更新项目记录本身,我都想创建一个新的版本记录。有什么办法吗?
我正在使用Rails 5.1.6.2,paper_trail(10.3.0)
我尝试使用PaperTrail::Events::Update
,尽管它不是公共API(它可能随时更改而不会发出警告)
project.name = 'new name'
update = PaperTrail::Events::Update.new(project, ....)
PaperTrail::Version.create!(update.data)
同样,这不是公共API,因此您将使保修无效:)
只要任何项目得到更新,..
我只将其放入ProjectController#update
操作中。如果确实需要,可以使用类似before_save
的模型回调,并使用throw :abort
到halt回调链,但是您必须解决隐式事务。