我将 mongoid 3.1.4 与 moped 1.5.1、mongodb 2.4.1 和 ruby 1.9.3 一起使用。
我有下一个模型:
class Practice
include Mongoid::Document
embeds_many :distresses
end
class Distress
include Mongoid::Document
embedded_in :practice
end
当我做这样的事情时,它似乎正在工作:
practice = Practice.create
practice.distresses.create
但是当我在我的配置文件中放置safe: true并且我做同样的事情时,我得到:
Moped::Errors::OperationFailure: The operation: #<Moped::Protocol::Command
@length=82
@request_id=22
@response_to=0
@op_code=2004
@flags=[]
@full_collection_name="collection.$cmd"
@skip=0
@limit=-1
@selector={:getlasterror=>1, :safe=>true}
@fields=nil>
实际上,我在以任何方式制造痛苦时都遇到了错误。这也会引发异常:
practice = Practice.create
distress = practice.distresses.build
distress.save
当我检查 practice.distresses.count 时,我可以看到在数据库中成功创建了苦恼,但是我得到了上面提到的异常。