Le 10 avril 2009 16:31, Cyril Mougel <[email protected]> a écrit :

> Comme dis précédement :
>
>   /app/models/update.rb:43:in `do_update'
>
> Voici la seule ligne qui te suffit et où se trouve la ligne.

Non, je suis plutôt d'accord avec ook? c'est dans Wiki#update_wiki

> Ton log ne donne pas les lignes :)

Visiblement on a :

Update < AR::B, BaselineProcess < AR::B, Wiki < AR::B
Update.belongs_to :wiki, Update.belongs_to :wiki
BaselineProcess.belongs_to :wiki

Update#do_update appelle (via un proxy, mais ça importe peu)
la méthode Wiki#update_wiki

Au début de la méthode, on a :

bp = update.baseline_process
logger.info("Starting update of wiki #{self.title} from baseline
process #{self.baseline_process.title} (#{self.baseline_process.id})
to #{bp.title} (#{bp.id})")

soit bp = update.baseline_process vaut nil
ou self.baseline_process vaut nil.

Du coup la ligne 118 serait l'appel au logger.

Ceci dit, dans Update#do_update, avant d'arriver
à la ligne :

self.wiki.update_wiki(self)

...il y a déjà des self.baseline_process.title et self.wiki.title
qui passent bien. Ce qui voudrait dire que l'association
Update -> BaselineProcess est ok, Update -> Wiki est ok,
mais pas Wiki -> BaselineProcess

Donc l'erreur proviendrait de :

self.baseline_process.title dans Wiki#update_wiki dans le logger.info(...)
précédemment cité.

À part ça, je suis d'accord avec Guillaume, appeler un modèle Update
est une très mauvaise idée, tu as Wiki.has_many :updates
donc tu fais des wiki.updates, mais ça ressemble trop
à AR::B#update, c'est un truc à se faire avoir un de ces 4,
d'ailleurs quand on voit le code avec des :

update.update_attributes()

Ceci dit, on peut dire que le code est globalement affreux.

   -- Jean-François.

-- 
http://twitter.com/underflow_

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