本当に小さなSinatraアプリでSequelを使い始めました。 DBテーブルは1つしかないので、モデルを使う必要はありません。Sequelデータセットの更新または挿入方法は?
私はそれが存在する場合は、レコードを更新するか、そうでない場合は、新しいレコードを挿入します。 $nums
がDB[:numbers]
データセットです
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
:私は、次の解決策を考え出しました。
私はこの方法では、「更新または挿入」行動の最もエレガントな実装ではありませんと信じています。
どうすればよいですか?
http://stackoverflow.com/questions/3647454/increment-counter-or-insert-row-in-one-statement-in-sqlite – Reactormonk