本当に小さなSinatraアプリでSequelを使い始めたところです。DBテーブルが1つしかないので、モデルを使用する必要はありません。
レコードが存在する場合は更新し、存在しない場合は新しいレコードを挿入したい。私は次の解決策を思いついた:
rec = $nums.where(:number => n, :type => t)
if $nums.select(1).where(rec.exists)
rec.update(:counter => :counter + 1)
else
$nums.insert(:number => n, :counter => 1, :type => t)
end
データセットはどこ$nums
にありますかDB[:numbers]
。
この方法は、「更新または挿入」動作の最も洗練された実装ではないと思います。
それはどのように行われるべきですか?