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
この問題についてご提供いただけるガイダンスをいただければ幸いです。