1

私のレールアプリケーションでは、この非常に奇妙な動作があります。検索クエリはすべて二重に実行されます。これは、AP 側と DB 側の両方でクエリをログに記録することで確認しました。ただし、開発モードでのみテストしました。

メソッドにログを追加して、メソッドが複数回呼び出されているかどうかを確認しましたが、そうではありませんでした。

すべての保存は 1 回だけ実行されるため、問題はありません。すべてのデータを 2 回クエリするため、DB 内のデータが増えるほど、ページの読み込みが遅くなるという問題のみが発生します。

コードのどの部分を貼り付けるべきかさえわかりません。これがどこから来ているのかわからないからです。

私は使用していますmongoid (3.0.13), rails (3.1.3)

ソース全体のgithubへのリンクは次のとおりですhttps://github.com/deiga/new-Roydon/tree/develop

4

2 に答える 2

9

あなたはおそらくそれを解決したでしょうが、私は同じ問題を抱えていました。その理由はbullet、パフォーマンスを測定する目的ですべての Mongoid の検索を再実行する宝石でした。

Gemfileにも含まれていることがわかりますので、おそらくそれだけです。

于 2013-01-25T15:54:38.560 に答える
0

Shop::Category::all_productsAncestry のメソッドを呼び出すはchildren、Mongoid 選択を作成しているようです。ProductsController一方、 を指定した時点で、関連付けられている商品をすでに取得していましたincludes(:products)

includes(:products)の 5 行目から削除してみてProductsController、そのコントローラー アクションから重複が削除されるかどうかを確認してください。

于 2012-12-02T17:57:49.920 に答える