我想知道是否有人可以就解决我在使用 rails 应用程序时遇到的问题的最佳方法提供一些指导。
背景
我有一个名为的大型数据库Product
,其中包含大约 500,000 行。我想创建一个页面(这可以称为“详细信息”),使用户能够查看Product
.
最初我想运行一个活动记录查询Product
,产生@matchingproducts
- 例如@matchingproducts = Product.where(...)
。
有2个轻微的并发症:
@matchingproducts
通常包含大约 200 条记录,我使用 paginate 一次显示这些结果 50- 我希望能够应用更多过滤器
@matchingproducts
以使用户能够微调结果(例如@matchingproducts_filtered = @matchingproducts.where(...)
)
问题
我应该如何定义我的变量@matchingproducts
,使得整个数据库 ( Product
) 的查询只执行一次(即在“详细信息”页面的初始加载时?
Product
目前,每次查看下一个 x 记录时,我的耗时查询都会重新运行paginate
,以及何时@matchingproducts_filtered
由用户指定
您可以就此问题提供的任何指导将不胜感激