我在前端使用 angular-8,在后端使用 Mongoid(6.1( 使用 Rails(5.2(。
我有一个用于模型Event
的多级嵌套表单,它反过来accepts_nested_attributes_forTicket
accepts_nested_attributes_forChannel
.
每当我尝试更新任何事件并将新Channel
添加到任何Ticket
事件时。我收到此错误:
操作失败(未知修饰符:$pushAll。预期有效的更新修饰符或管道样式更新指定为数组 (9((:
我已经查找并在此处发现,$pushAll支持现已弃用,我们必须默认打开UsePushEach。
但是我不知道我应该在哪里通过Rails中的默认设置配置这个UsePushEach。
任何帮助将不胜感激。谢谢!
请注意,您指的是Mongoose的Github问题,这是一个节点ODM,并且您正在尝试将其设置应用于Rails。它们完全不同,它们的问题和解决方案彼此不适用。
在Mongoid中,pushAll自Mongoid 6.3以来被删除(参见MONGOID-4499(。您看到此错误是因为您使用的是旧版本的 Mongoid。
升级到最新的Mongoid(当前为7.0(应该可以消除此错误。
使用$push,您可以同时使用单值和值数组
两者都有效
{"$push":{"列1":"值"}}//将单个值推送到 column1 数组类型
{"$push":{"column1":[value]}}//将整个数组附加到 column1 数组类型(内部 mongodb 将使用 $each(