В нашем приложении есть несколько часто используемых кодов, которые увеличивают столбец, например:
if (r = customer.find_or_generate_reminder)
r.counter += 1
r.save!
end
У нас тайм-ауты ожидания блокировки, поэтому я подумываю сделать это атомарной операцией. Наивно то, что я хочу сделать, выглядит так:
if (r = customer.find_or_generate_reminder)
connection.excute('UPDATE customer_reminders SET counter=counter+1, updated_at=now() WHERE id = ' + r.id)
end
Есть ли способ в рубиновом мире сделать то же самое?