2013-03-21 76 views
1

我與另一個對象有has_many關係。正因爲如此,Mongoid創建了一個名爲item_ids的屬性作爲數組,因此我可以方便地將多個ID保存爲一個數組。但是,每當我嘗試保存一個新的數組時,它都不會實際保存。在我的rails控制檯中運行下面的代碼。無法在Mongoid中保存數組

1.9.3p385 :035 > miss.item_ids = [1,2,3] 
=> [1, 2, 3] 

1.9.3p385 :036 > miss.save 
[paperclip] Saving attachments. 
=> true 

1.9.3p385 :037 > miss.item_ids 
=> [] 

正如你所看到的,當我保存對象時,它返回true。但是,當我返回檢查出item_ids我返回一個空數組。我究竟做錯了什麼?

+0

檢查對象小姐的消息 – Gerep 2013-03-21 18:26:30

+0

'full_messages'返回一個空數組。 – jason328 2013-03-21 18:29:08

+0

而不是在您的rails控制檯中檢查它,請嘗試檢查數據庫控制檯,只是爲了確保=) – Gerep 2013-03-21 18:51:16

回答

1

您正在手動創建關係。 嘗試miss.items << item

現在miss.items應該返回項目數組

3

'item_ids'不是一個屬性,它是一種運行某些查詢以僅返回關聯對象的ID並將它們附加到數組上的方法。

當你做一些類似miss.item_ids = [1,2,3]的事情時,你基本上是在文檔上創建該字段,就像你使用Mongo一樣,它會爲你存儲任何東西。