我在前端使用angular-8,在后端使用Rails(5.2)和Mongoid(6.1)。
我有一个模型Event
的多层嵌套形式,它接受Ticket
的nested_nested_attributes_for,然后接受Channel
的nested_nested_attributes_for。
[每当我尝试更新任何事件并将新的Channel
添加到具有事件的任何Ticket
中时。我收到此错误:
Mongo :: Error :: OperationFailure(未知修饰符:$ pushAll。期望有效的更新修饰符或指定为数组的管道样式更新(9):]
我查了一下,发现here,现在已弃用$ pushAll支持,我们必须单击Turn on UsePushEach by default。
但是我不知道我应该在Rails中的默认设置下在哪里配置此UsePushEach。
任何帮助将不胜感激。谢谢!
[请注意,您指的是Mongoose的Github问题,它是节点ODM,并且您试图将其设置应用于Rails。它们是完全不同的,它们的问题和解决方案互不适用。
在Mongoid中,pushAll自Mongoid 6.3起被删除(请参阅MONGOID-4499)。您看到此错误是因为您使用的是旧版本的Mongoid。
升级到最新的Mongoid(当前为7.0)应消除此错误。