J'ai besoin de créer une ligne dans la table des billets et des utilisateurs ... Je dois juste savoir comment traiter au cas où la transaction échoue.
@ticket.transaction do
@ticket.save!
@user.save!
end
#if (transaction succeeded)
#.....
#else (transaction failed)
#......
#end
Sur une note latérale, je voudrais tout juste remercier tous ceux qui participent au débordement de la pile pour aider un designer à apprendre davantage de programmation ... J'apprécie le temps que vous sortez de votre journée pour répondre à des questions N00b comme ceci :)
Si vous utilisez la sauvegarde! Méthode avec un BANG (point d'exclamation), l'application lancera une exception lorsque la sauvegarde échoue. Vous devrez alors saisir l'exception pour gérer l'échec.
begin
@ticket.transaction do
@ticket.save!
@user.save!
end
#handle success here
rescue ActiveRecord::RecordInvalid => invalid
#handle failure here
end
je suis aussi un débutant, mais je crois que vous pouvez vérifier @ ticket.Errors et @ user.Errors et valider en fonction de leurs réponses
de plus, la méthode de sauvegarde devrait renvoyer un booléen qui détermine si la sauvegarde a réussi