Je rencontre un problème étrange depuis que j'ai mis à niveau vers Rails 3.2.Objets imbriqués et taille de la collection
Mon application a des objets gérés avec des formes imbriquées, mais lorsque j'essaie d'atteindre la taille d'une collection après avoir construit un nouvel objet imbriqué, l'objet imbriqué est pris en compte.
Ex .:
1.9.3p0 :004 > e = Expense.last
Expense Load (22.6ms) (...)
=> #<Expense id: 1, (...)
1.9.3p0 :005 > e.comments.size
(0.3ms) SELECT COUNT(*) (...)
=> 0
1.9.3p0 :006 > e.comments.build
=> #<Comment id: nil, content: nil, commentable_id: 1, commentable_type: "Expense", created_at: nil, updated_at: nil, creator_id: nil>
1.9.3p0 :007 > e.comments.size
=> 1
Dans ce cas, je me attends à la e.expense.size
pour revenir 0 puisque l'objet Comment
n'a pas encore été enregistré.
Peut-être que ce n'est pas depuis la mise à niveau, peut-être que je ne l'ai pas remarqué auparavant. Le fait est que je reçois ce comportement quand j'appelle 'pour commenter dans e.comments', et puisque le commentaire qui vient d'être construit n'est pas encore sauvegardé, cela soulève aussi une erreur – AkyRhO