Rails高容量find_or_create并更新

时间:2018-04-13 20:49:12

标签: ruby-on-rails activerecord

我处理一些大多数5MB大小约为20k左右的CSV文件。

目前处理我们的模式的一致性是:

Chargeback.transaction do
  account.chargebacks
    .where(issue_id: row[:issue_id])
    .first_or_create!.update!(large_hash_of_new_state)
end

这很好并且有效,但是有更好的方法来执行以下操作:

Chargeback.transaction do
  account.chargebacks
    .where(issue_id: row[:issue_id])
    .insert!(large_hash_of_new_state)
end

不仅仅是代码简单,还有更少的SQL?这是一个upsert?

0 个答案:

没有答案