2009/2/4 Guillaume Betous <[email protected]>: > Bonjour, j'ai 2 modèles qui, au niveau métier sont liés de la manière > suivante : > > - Une classe AR "production" contient entre autre une info de stock (dans le > sens quantité) > - Une classe AR "mission" puise dans ce stock pour apporter (camion) de la > marchandise vers une autre ville > - Une mission n'est possible que si le stock correspondant est strictement > positif. > > Jusqu'à présent tout se passe dans la classe "mission" : > - un "validate_on_create" s'assure que le stock est suffisant > - un "after_create" décrémente le stock de la valeur correspondant à la > mission > > Mon soucis est de rendre ça atomique : lors d'un accès concurrent au meme > stock, je ne veux pas que 2 personnes pensent qu'il y a du stock, que les 2 > décrémentes, et que finalement le stock devienne négatif vu qu'en fait il > n'y en avait pas pour les 2. > > J'ai bien vu les transactions[1], mais je ne sais pas comment faire pour la > mettre dans le modèle, vu que ça touche des actions avant et après la > création. >
Je pense que pour être vraiment sur du résultat, tu devrais utiliser des contraintes sur ta base de données directement. -- http://fabien.jakimowicz.com --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
