2013-03-21 57 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一样,它会为你存储任何东西。