Mongoid升级后无法推送多个嵌入

时间:2019-04-19 13:49:02

标签: ruby-on-rails mongoid

我最近将mongoid更新为6.x。在我的一项rspec测试中,我使用以下约定来保留嵌入式文档:

parent.children.push(child1, child2, child3, etc...)

在这种情况下,父模型和子模型都具有after_update回调。一切正常,但是在升级蒙古包之后,我得到了:

NoMethodError (undefined method `call' for #<ActiveSupport::Callbacks::CallbackSequence:0x00007fcde9684c00>)

如果我更改测试以进行单独的推送,则效果很好,即:

parent.children.push(child1)
parent.children.push(child2)
etc...

我已经搜索了很多,但是还没有找到与此相关的任何内容。我是“做错了”吗?

2 个答案:

答案 0 :(得分:0)

我按照建议尝试了parent.push(childrens: [...]),但产生了此错误:

NoMethodError: undefined method `bson_type' for #<Child:0x00007fd7073ce520>
from /mongoid-6.1.1/lib/mongoid/attributes/dynamic.rb:137:in `method_missing'

答案 1 :(得分:0)

看起来类似的Mongoid版本可能存在问题。我不知道现在到了v.7。我更新到了最新的7.0.2,并且此问题似乎已解决。