为什么rails caches_actions使用错误的布局?

时间:2011-05-05 13:25:31

标签: ruby-on-rails caching layout

在我的应用中有一个带有索引操作的帖子控制器,它可以用html和rss响应。我使用带有caches_action :index, :layout => false, …的memcached将其设置为缓存,一切都适用于html,但是当rss已经缓存时,我将它包装到html布局application.html.haml中,尽管我有rss布局application.rss .haml。

据我所知,对于rss,最好使用caches_page,但我想知道为什么使用了错误的布局类型。我使用rails 3.0.7。

1 个答案:

答案 0 :(得分:1)

我也遇到过这种情况,caches_action不正确地尊重格式和布局,所以我们必须这样做:

caches_action :index, :layout => false, :if => Proc.new {|c| c.request.format.try(:html?)}
caches_action :index, :if => Proc.new {|c| c.request.format.try(:rss?)}

基本上有单独的caches_action调用您希望缓存的每种不同格式。