class A < ActiveRecord::Base
has_many :bs
has_many :cs, :through => :bs
end
class B < ActiveRecord::Base
belongs_to :a
belongs_to :c
end
class C < ActiveRecord::Base
has_many :bs
end
Si je mettre en place une console de rails et faire
a = A.new
b = a.bs.build
b.c = C.new
Puis-je obtenir
a.cs => []
mais
a.bs[0].c => c
Si un est enregistré, alors tout fonctionne . Est-ce prévu? pourquoi l'association à travers ne fonctionne-t-elle pas quand les modèles existent seulement en mémoire? merci
Peut-être, l'association est 'établie' lorsque l'objet est enregistré (ou chargé), pas créé. Est-il obligatoire que vous opériez avec des instances non enregistrées? –
Ce n'est pas, mais je préfère avoir un encombrement aussi faible que possible lors de mes tests, s'ils peuvent être exécutés en mémoire, je vais gagner beaucoup de temps. – pingu