繁体   English   中英

Rails 3:从控制器缓存*所有*页面,而无需手动添加它们

[英]Rails 3: Caching *all* pages from a controller without manually adding them

我们有一个Rails应用程序,其中包含一些可供所有人使用的页面以及仅在登录后才能看到的页面。 我们称它们为“公共”页面和“应用程序”页面。 由于公共页面没有更改,因此我们希望为其启用页面缓存。 一种解决方案是手动添加

caches_page :index, ..

给我们所有的公共控制者。 但是,我觉得这并不方便,而且还是Rubyish。 我们所有的公共控制器都继承自PublicController类(某些共享方法,行为等),因此我想到了将缓存方法也放入PublicController中,以便默认情况下缓存所有公共控制器(再次,public或多或少是静态的)内容)。 但是不存在

caches_page :all

在Rails中。 我想到使用类似

self.new.public_methods(false)

然后遍历它们并将它们添加到缓存中。 但是由于这在PublicController中,所以没有列出实际操作。

有人对此问题有好的解决方案吗? 还是手动方式是唯一的选择。

谢谢!

通过查看caches_page工作方式,您可以添加一个过滤器来做到这一点:

after_filter :cache_page

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM