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.

Merci (-:

gUI

[1]
http://api.rubyonrails.com/classes/ActiveRecord/Transactions/ClassMethods.html
-- 
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/

--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---

Répondre à