2011-04-05 5 views
0

si j'avais les associations suivantes ...objet MongoDB/association bizarrerie

Product 
    embeds_many :pressings, :class_name => "ProductPressing" 
ProductPressing 
    embedded_in :product 
    embeds_many :variations, :class_name => "ProductVariation" 
ProductVariation 
    embedded_in :pressing, :class_name => "ProductPressing" 

après avoir réalisé des associations de référencement convenant mieux à mes besoins, les associations sont devenues ...

Product 
    references_many :pressings, :class_name => "ProductPressing" 
ProductPressing 
    referenced_in :product 
    references_many :variations, :class_name => "ProductVariation" 
ProductVariation 
    referenced_in :pressing, :class_name => "ProductPressing" 

les produits et les pressages sont associés ensemble correctement, mais les pressages et les variations ne le sont pas, même si les variations sont créées. la bizarrerie peut être vu dans les commandes suivantes ...

>> v = ProductVariation.first 
=> #<ProductVariation _id: 4d9acc89e1607c48fd00001c, _id: BSON::ObjectId('4d9acc89e1607c48fd00001c'), _type: nil, pressing_id: BSON::ObjectId('4d9acc89e1607c48fd00001b')> 
>> v.pressing.product.pressings.first.variations 
=> [] 

vous pouvez voir que je commence avec un existant en appuyant sur ... me frayer un chemin jusqu'au produit, puis vers le bas pour voir toutes les variations .. mais le compte est 0. comment cela peut-il être?

+0

cela me rend fous. consultez ce pastie pour voir à quel point c'est insensé ... http://pastie.org/1761251 – brewster

+0

ou un exemple encore plus simple du même comportement étrange ... http://pastie.org/1761329 – brewster

Répondre

0

donc je découvert que la suppression: class_name a résolu le problème (je pense faire encore des tests.)

referenced_in :pressing, :class_name => "ProductPressing" 

à:

referenced_in :product_pressing 

j'utilisais nom_classe très bien avec embedded_in. ne peut-il pas être utilisé avec referenced_in?