У меня есть следующие фрагменты кода:
oldroompaxinfo = Roompaxinfo.find(:all, :conditions =>["bkgitem_id = ?",bkgitemid])
.... some code to identify which passenger ids have changed
roompaxinfo = Roompaxinfo.find(:first, :conditions => ["bkgitem_id = ? and roomno = ? and pax_id = ?", bkgitemid, roomno, oldpaxid])
roompaxinfo.pax_id = newpaxid
roompaxinfo.save
..... some code to send the changes to a remote service.
#If errors occur during send I want to re-instate the old info
if retcode.index('Error') != nil
oldroompaxinfo.each do |rp|
rp.save
end
end
И проблема в том, что последний бит кода НЕ сохраняет старые данные обратно.В случае, если кто-то думает, что это не выполняется из-за проверки состояния, я уже доказал, что это происходит путем вывода некоторых вещей во флэш-памяти.Я также попробовал rp.save!но это тоже не помогло.
Я использую MySQL с Ruby 1.8 и Rails 2.3.8