2011-04-05 43 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一起使用?