2010-04-12 27 views
5

我想缓存查询结果,以便相同的结果被提取“多个请求”直到我无效缓存。例如,我想渲染一个包含书的所有页面的侧栏,非常像书的索引。因为我想在书的每一页上显示它,所以我必须在每个请求上加载它。我可以使用动作缓存来缓存呈现的边栏索引,但我也想实际缓存用于为边栏生成HTML的查询结果。 Rails是否提供了一种方法来实现它?我该怎么做?如何缓存跨多个请求的Rails查询

回答

3

您可以使用ActiveSupport's cache store缓存查询结果,如果您提供自己的实现,它可以通过内存存储(如memcached)或数据库存储支持。请注意,如果高速缓存在多个Ruby进程之间共享,那么您将需要使用数据库存储,如果您部署到Mongrel Cluster或Phusion Passenger,情况将会如此。

0

你也可以在控制器查询数据库之前检查你的行动缓存。