Ho appena iniziato a usare Sequel in una piccola app Sinatra. Dato che ho una sola tabella DB, non ho bisogno di usare i modelli.Come aggiornare o inserire nel set di dati Sequel?
Desidero aggiornare un record se esiste o inserire un nuovo record se non lo è. Sono venuto con la seguente soluzione:
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
Dove $nums
è DB[:numbers]
set di dati.
Credo che in questo modo non sia l'implementazione più elegante del comportamento di "aggiornamento o inserimento".
Come dovrebbe essere fatto?
http://stackoverflow.com/questions/3647454/increment-counter-or-insert-row-in-one-statement-in-sqlite – Reactormonk