Mulder ! A l'aide!

tu tuuuuu tu tu tu tuuuuuuuu (*)

j’ai un bug… heu… que j’arrive pas du tout à sollutionner.

j’ai un modèle Consumption avec (entre autre) une méthode :

def consume
self.stock-=self.quantity
self.save
end

mon soucis c’est que appremment ça ne se sauve pas.

dans une console je tape :

c=Consumption.find(:first)

c.consume
=> 76

c.consume
=> 64

donc ma méthode à l’aur de marcher. pourtant dans mon navigateur les
stocks
ne bougent pas.
si je tapes dans ma console :

c.save

ca y est, je vois les nouvelles valeurs dans mon navigateur…

vous avez une idée ?

gUI

(*) Vous aurez bien sur reconnu le générique de X-Files


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/

Guillaume B. wrote:

tu tuuuuu tu tu tu tuuuuuuuu (*)

j’ai un bug… heu… que j’arrive pas du tout à sollutionner.

j’ai un modèle Consumption avec (entre autre) une méthode :

def consume
self.stock-=self.quantity
self.save
end
Pourquoi self.save et pas save tout court ?

sinon as-tu essayé avec save! pour voir si une erreur t’étais levée ?

as-tu essayé de fait un print de self avant de save pour voir si
l’instance a eu ses valeurs changées ?


Cyril M.

Pourquoi self.save et pas save tout court ?

heu… parce que je savais pas… dans la methode je mets save tout
court ?
en tous cas le pb est le meme…

sinon as-tu essayé avec save! pour voir si une erreur t’étais levée ?

ni save! self.save! ne retournent d’erreur.

as-tu essayé de fait un print de self avant de save pour voir si

l’instance a eu ses valeurs changées ?

oui, et l’instance a bien ses valeurs qui changent.

non, je comprends pas du tout ce qui peut se passer.

gUI


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/

Guillaume B. wrote:

sinon as-tu essayé avec save! pour voir si une erreur t'étais levée ?

non, je comprends pas du tout ce qui peut se passer.
n’est pas un objet qui n’est pas “à jour”. Par exemple tu le récupéres
avant de faire la mise à jour. tu fais la mise à jour sur une autre
instance et tu utilises la première pour ton affichage du coup les
valeurs sont dans l’ancien état.

Sinon autre possibilité, le partial update de Rails 2.1[1]. Fait un test
pour savoir si l’objet a été considéré comme changé :

puts changed?

si ce n’est pas le cas alors il faut indiquer à ActiveRecord que le
changement a eu lieu :

stock_will_change!

[1] :
http://blog.shingara.fr/2008/04/18/suivi-des-evolutions-des-objets-model


Cyril M.

Salut,

Le 1 févr. 09 à 13:54, Guillaume B. a écrit :

Bon, laissez tomber, j’ai fait mon gros boulet (-:

Allez, juste par curiosité… tu avais fait quoi ?

Contre un peu d’argent je suis prêt à expliquer, mais je vous
avertis, c’est un gros coup de boulet !!!

€€€

Guillaume D.
Président de l’association Ruby France
http://www.rubyfrance.org/

Bon, laissez tomber, j’ai fait mon gros boulet (-:

Contre un peu d’argent je suis prêt à expliquer, mais je vous avertis,
c’est
un gros coup de boulet !!!

gUI


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/

Allez, juste par curiosité… tu avais fait quoi ?

… je modifiais pas la bonne méthode. Je vous parlais de “Consumption”,
mais je travaillais avec “Production”. Donc forcément, il n’y avait pas
d’effet.

La méthode “consume” de “Production” existait pour des raisons
historiques
mais je ne m’en servais pas. Et c’est elle dont je modifiais le code.

La méthode “consume” de Consumption, elle, ne contenait pas de “save”,
d’où
le fait qu’elle ne sauvegardait rien !

gUI


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/