轨道和Mongoid以及重复查找查询



我的rails应用程序中有这种非常奇怪的行为。所有查找查询都运行双倍。我已经通过在 ap 端和数据库端记录查询来验证这一点。不过,我只在开发模式下对其进行了测试。

我已将日志记录添加到方法中,以查看这些方法是否被多次调用,但事实并非如此。

所有保存只运行一次,因此没有问题。只有页面加载速度越慢的问题,数据库中的数据越多,因为它会两次查询所有数据。

什至不知道我应该粘贴代码的哪些部分,因为我不知道这可能来自哪里。

我正在使用mongoid (3.0.13), rails (3.1.3)

这是整个源代码 https://github.com/deiga/new-Roydon/tree/develop 的github链接

您现在可能已经解决了它,但我遇到了同样的问题,原因是bullet宝石,它重新运行每个 Mongoid 发现以衡量性能。

我可以看到您的 Gemfile 中也包含它,所以可能就是这样。

看来调用 Ancestry children方法的 Shop::Category::all_products 正在创建一个 Mongoid 选择。同时,当您指定includes(:products)时,您已经在ProductsController中获取了关联的产品。

尝试从ProductsController的第 5 行中删除includes(:products),看看它是否从该控制器操作中删除了重复项。

最新更新