失败,错误10068:“运算符无效:$ oid”

刚更新到最新版本的mongoid(3.1.0)和sidekiq(2.7.2)
现在我收到错误: failed with error 10068: "invalid operator: $oid"
从查看代码我看到一个像这样的选择: @selector={"_id"=>{"$oid"=>"[some id]"}}
什么可以在这里出错?

将此添加到我的gemfile修复了问题:

 gem 'multi_json', '1.5.1' 

我猜最新版本有问题(1.6.0)

编辑:gem已更新到修复此问题的新版本(1.6.1)。 更多信息: https : //github.com/intridea/multi_json/issues/89

这实际上是因为BSON :: ObjectId不是JSON的一部分……所以当Sidekiq试图将args序列化为工作者时,它就会发挥作用。 看看这个评论: https : //github.com/mperham/sidekiq/issues/951#issuecomment-19497803

该修复只是在执行如下作业时将ID转换为字符串:

 EmailSubscribe.perform_async(user.id.to_s)