2011-04-05 51 views
0

所以我有以下关联...MongoDB的对象/关联古怪

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

实现引用协会将更好地满足我的需求后,该协会成为...

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

产品和冲压是正确的关联在一起,但冲压和变化不是,即使变化正在创建。古怪可以在下面的命令中可以看出...

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

你可以看到,我开始与现有的压...工作,我的方式到产品,然后回落到查看所有变化..但计数是0.这怎么可能?

+0

这是让我疯狂的。看看这个饼图,看看这是多么荒谬...... http://pastie.org/1761251 – brewster 2011-04-06 00:38:26

+0

或一个更简单的同样奇怪的行为的例子... http://pastie.org/1761329 – brewster 2011-04-06 01:14:59

回答

0

,所以我发现,删除:CLASS_NAME解决了这个问题(我觉得还是做测试。)

referenced_in :pressing, :class_name => "ProductPressing" 

到:

referenced_in :product_pressing 

我使用CLASS_NAME就好用embedded_in。它能不能与referenced_in一起使用?