gpt4 book ai didi

ruby-on-rails - Ruby on Rails 6 Postgres upsert_all 区分更新和插入

转载 作者:行者123 更新时间:2023-12-05 06:48:44 34 4
gpt4 key购买 nike

我已使用 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 的数据库字段上设置一个默认值,但我不想那样做。

最佳答案

只是想确保您了解 PaperTrail gem,它可以为您做到这一点:

Track changes to your models, for auditing or versioning. See how a model looked at any stage in its lifecycle, revert it to any version, or restore it after it has been destroyed

关于ruby-on-rails - Ruby on Rails 6 Postgres upsert_all 区分更新和插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66749067/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com