使用 Rails 3.1.1 和 Heroku。
我相信这应该是一个相当容易解决的问题,但我找不到(并且很容易验证)如何做到这一点。我有一个非常慢的控制器(6 秒)Product#show
,有很多N+1和其他我必须解决的事情。
该网站是一个两栏网站 (main-column
和right-column
),其中主要内容Product#show
显示在一栏中,另一栏daily product
显示,包括“数据库中的随机产品”。
我想要做的是让其中main-column
创建的内容Product#show
被缓存(从而绕过控制器并赢得 6 秒)。但是,我确实希望右列是动态的(并为每个页面请求加载)。
如果我使用caches_page :show
它将缓存整个网站,包括 . right-column
,这使我必须每天都使缓存过期才能加载新的Daily Product
. 不是一个好的解决方案。
如果我使用cache('product-show' + @product.slug) do
它只缓存视图(对吗?)并且仍然必须通过控制器。
那么,我该如何解决呢?