我有一个带有first_or_create的Sidekiq作业。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_room"
android:icon="@drawable/ic_action_home"
android:title="@string/menu_item_room"
android:onClick="gotClicked"/>
<item
android:id="@+id/add_furniture"
android:icon="@drawable/ic_action_armchair"
android:title="@string/menu_item_furniture"/>
</menu>
但是由于创建了重复的分析记录,这会导致唯一性验证失败。我理解这是因为first_or_create不是原子的。
那么这样做的正确方法是什么? 我想同时运行作业,如果分析记录已经存在,我会更新,否则插入。
答案 0 :(得分:0)
调查术语“upsert”。 ActiveRecord无法在本地执行此操作,但您可以手动滚动SQL。