我的模特是:
class Node
include Mongoid::Document
end
class PhysicalServer < Node
embeds_many :network_interfaces
end
class NetworkInterface
include Mongoid::Document
embedded_in :physical_server
end
如果我这样做:
server.network_interfaces.build()
server.save!
当我检查数据库时,我会看到2个带有重复ID的NetworkInterface嵌入文档。
但是,如果我这样做:
server.network_interfaces.create()
它将正常工作(只创建了1个嵌入式文档)。
它是Mongoid中的错误,还是我的代码有问题? 我正在使用Ruby1.9.3 + Rails 3.2.9 + Mongoid 3.0.13
答案 0 :(得分:0)
不太确定问题是什么“尚未”,但我遇到了同样的问题,我暂时有一个解决方法。
通过在我的控制器的更新操作中执行强制新查找,我能够摆脱'$ pushAll'在每次更新调用时创建重复。我觉得它与Mongoid的原子操作积累有关;使用新对象只是删除“构建”操作。
我已经创建了一个问题的要点(希望能够重新创建失败的方案和解决方法:https://gist.github.com/jsmestad/d0103ba0197df9f4505b)