我与另一个对象有has_many
的关系。因此,Mongoid创建了一个名为item_ids
的属性作为数组,因此我可以方便地将多个ID保存为数组。但是,每当我尝试保存新阵列时,它实际上都不会保存。在我的rails控制台中,我运行以下代码。
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 :(得分:3)
'item_ids'不是一个属性,是一个运行某些查询的方法,只返回关系对象的ID并将它们附加到数组上。
当您执行miss.item_ids = [1,2,3]之类的操作时,您基本上是在文档上创建该字段,因为您使用的是Mongo,它会为您存储任何内容。
答案 1 :(得分:1)
您正在手动创建关系。
试试miss.items << item
现在miss.items
应该返回一个项目数组