正确地渴望加载空数组被忽略

时间:2012-10-09 19:38:38

标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid eager-loading

我的images型号上有多对一关系vehicle。我已经设置了类似于Vehicle.includes(:images).find(ids)的查询。正确地,有几个加载了空数组,因为这些vehicles没有图像。但是,它会回到Mongo服务器,试图找出是否有任何图像。身份地图已启用,所有爵士乐都已启用。急切加载似乎适用于非空数组。

我如何向Mongoid发信号通知空数组是否正确并且不再尝试加载它们?

1 个答案:

答案 0 :(得分:0)

从未找到解决此问题的好方法。似乎身份映射不会存储空数组,当我手动将空数组填充到IdentityMap中时,它按预期工作。

以下是我们的工作,以防其他人有这个问题:

我们确保vehicle_id模型中的image上有索引,然后将所有图像加载到单独的查询中并将其粘贴到相关的车辆对象中。我们从未通过这种方法一次加载超过25辆车,所以我们从26个查询到2个。

如果在内存中加载了大量元素,可能效率不高。