使用update_column方法更新ActiveRecord模型时,如何跳过除纸迹之外的所有回调



我是铁轨新手。我想使用paper_trail gem来跟踪我的记录的版本,但当我使用update_columns方法时无法做到这一点。我认为重写update_columns方法可能会对我有所帮助,但我不知道该如何编写代码?

使用update_column方法更新ActiveRecord模型时,如何跳过除纸迹之外的所有回调。。我使用update_columns方法。

根据Rails文档,update_columns方法跳过回调。这包括PT.安装的回调

我是铁路新手。。。我认为重写update_columns方法可能会对我有所帮助。。?

如果您是rails的新手,则不应覆盖核心rails方法。

解决方案

按偏好降序排列:

  1. 通常,我建议使用update而不是update_columns。但是,您希望跳过回调的适当子集
  2. 您可以touch记录,PT将记录一个只有updated_at更改的Version。如果您只需要object而不需要object_changes,那么这就足够了
  3. 您可以像使用任何其他型号一样使用PaperTrail::Version.create。这是公共的API,但您要负责传递正确的属性
  4. 您可以使用PaperTrail::RecordTrail#record_update。这是专用API,可随时更改,恕不另行通知

相关内容

  • 没有找到相关文章

最新更新