Ruby on Rails 6 Postgres upsert_all 区分更新和插入操作

3

我已成功使用 upsert_all 更新一些记录,现在我正在开发一个功能,应该记录已更新或已创建的记录。

new_postcodes [{
  postcode: 'QBC123',
  created_at: Time.current,
  updated_at: Time.current,
}, {
  ...
}]

Postcode.upsert_all(new_postcodes, returning: ['postcode'], unique_by: :index_postcodes_on_postcode)

据我所知,upsert_all 并未提供实际操作的详细信息,而由于我还发送了 updated_at 日期,因此我无法区分记录。我唯一的想法是在Postgres数据库字段上设置默认值,但我不想这样做。
1个回答

0

我想确认一下,您是否知道PaperTrail gem这个工具,它可以帮助您实现以下功能:

跟踪模型的更改,用于审计或版本控制。查看模型在其生命周期的任何阶段的外观,将其还原到任何版本,或在其被销毁后恢复它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接