Railsアプリケーションで直面している問題に対処するための最良のアプローチに関して、誰かが何らかのガイダンスを提供できるかどうか疑問に思っていました.
背景Product
私は、約 500,000 行を含む
大規模なデータベースを持っています。ユーザーが のアイテムのサブセクションの情報を表示できるページ (これは「詳細」と呼ばれる) を作成したいと考えていますProduct
。
Product
最初に、アクティブ@matchingproducts
なレコードクエリを実行したいと思います@matchingproducts = Product.where(...)
。
わずかに複雑な点が 2 つあります。
@matchingproducts
通常、約 200 レコードが含まれています。一度に 50 件の結果を表示するために paginate を使用しています。@matchingproducts
ユーザーが結果を微調整できるように、さらにフィルターを適用できるようにしたいと思います (例:@matchingproducts_filtered = @matchingproducts.where(...)
)
問題@matchingproducts
データベース全体のクエリ ( Product
) が 1 回だけ実行されるように (つまり、「詳細」ページの初期ロード時に)
、変数をどのように定義すればよいですか?
現在、時間のかかるクエリはProduct
、次の x レコードを表示するたびに再実行され、ユーザーが指定したpaginate
場合と同様に@matchingproducts_filtered
この問題についてご提供いただけるガイダンスをいただければ幸いです。