我们有一个 Rails 应用程序,其中有些页面可供所有人使用,有些页面只有在登录后才能看到。我们称它们为“公共(public)”页面和“应用程序”页面。由于公共(public)页面没有变化,我们希望为它们启用页面缓存。一种解决方案是手动添加
caches_page :index, ..
我们所有的公共(public) Controller 。但是,我不觉得这很方便而且是 Rubyish。我们所有的公共(public) Controller 都继承自一个 PublicController 类(一些共享方法、行为、..),所以我想将缓存方法也放在 PublicController 中,以便默认缓存所有公共(public) Controller (同样,公共(public)意味着或多或少是静态的内容)。然而不存在
caches_page :all
在 Rails 中。我想过用类似的东西
self.new.public_methods(false)
然后遍历它们并将它们添加到缓存中。但由于这是在 PublicController 中,因此没有列出任何实际操作。
有没有人有解决这个问题的好方法?或者手动方式是唯一的方式。
谢谢!
从 caches_page
的工作方式来看,您似乎可以添加一个过滤器来完成它:
after_filter :cache_page
我是一名优秀的程序员,十分优秀!