I ont les extraits de code suivants:données Rails ne sont pas enregistrées
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
Et le problème est que ce dernier morceau de code ne sauve pas les anciennes données en arrière. Dans le cas où quelqu'un pense qu'il n'est pas exécuté à cause du contrôle de condition, alors j'ai déjà prouvé qu'il le fait en produisant des choses en flash. J'ai aussi essayé rp.save! mais cela n'a pas aidé non plus.
J'utilise MySQL avec Ruby 1.8 et Rails 2.3.8
Que dit le development.log? Montre-t-il les requêtes SQL en cours d'exécution? – Dogbert
@Dogbert le journal ne montre aucune tentative d'enregistrement. La réponse de Dylan était la raison. Merci pour votre contribution. – nexar