我已经使用inherited_resource插件构建了一个应用程序,它已经准备好投入生产。
现在,我正在寻找为同一应用程序实现缓存的方法。因为我有一些依赖于current_user的页面片段,所以我将使用片段缓存机制。
谁能为我提供一个指针或资源,帮助实现基于inherited_resource的视图和控制器的片段缓存?
谢谢,Ajay Kumar G
发布于 2011-05-29 22:53:39
我不使用inherited_resources,但我的理解是它只是控制器的捷径。您的视图应该是标准的,在这种情况下,您可以使用片段缓存,如http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching上的Rails指南中所述
你试过吗?如果这不起作用,请向我们展示您的视图。
编辑:对注释的响应。
好的,一般来说,如果你使用片段缓存,那么不调用控制器操作是没有意义的,因为你不会设置任何变量,如果没有变量,那么为什么不使用页面缓存呢?
为了防止查询被触发,带arel的ActiveRecord 3.0是你的朋友。例如,如果您在操作中放入@posts = Post.where(:published => true),那么直到您在视图中调用@posts.each时它才会被调用,所以如果您将它放在缓存块中,它将永远不会被调用。我不确定inherited_resources在默认情况下会做什么,但考虑到它是由JoséValim编写的,我想他在默认情况下会使用ActiveRecord的这个特性,如果不是的话,它很容易定制。您可以通过为您的开发环境打开缓存并查看日志来查看触发了哪些查询,从而对其进行测试。
https://stackoverflow.com/questions/5996655
复制相似问题