1

我的 Rails 应用程序中有这种非常奇怪的行为。所有查找查询都运行两次。我已经通过在 ap 端和 DB 端记录查询来验证这一点。我只在开发模式下测试过它。

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

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

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

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

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

4

2 回答 2

9

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

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

于 2013-01-25T15:54:38.560 回答
0

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

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

于 2012-12-02T17:57:49.920 回答