Rails 请教 memcached 的问题

eva · 2013年07月12日 · 最后由 lainuo 回复于 2013年07月15日 · 3099 次阅读

以前没用过memcache,最近想加一下试下,因为目前把news#index作为首页,但news基本上很少更新,有时几天才发一篇,觉得有必要缓存下。 因为news#index页面对用户没有什么不同的地方,所有考虑直接用caches_action.然后在news和comments变化的时候去expire_action. 但有个问题,因为用到了分页,所以加了路由 map.news_with_page '/news/page/:page', :controller => 'news', :action => 'index' expire_action :controller => :news, :action => :index 但如果我修改的是第二页的某篇 news,expire_action 还是只刷新了第一页的缓存。 所以请问我如何能刷新第二页的缓存?或者如何只缓存第一页?

环境:ruby1.8.7 rails2.3.14

caches_action :XXX, :cache_path => Proc.new {|c| c.request.url } 试试这样写

@jie830413 感觉 :cache_Path 不是我想要的。 如果只缓存第一页的话,

caches_action :index, 
              :layout => false, 
              :if => Proc.new { |c| c.request.params[:page].nil? }

这样目前看来是可行的

继续提问:首页缓存部署到服务器上后,第一个来访问的是个韩国人,于是首页瞬间夹杂着韩文!!!才突然想起网站是支持多国语言的(i18n)!!!😓 所以请问怎么根据不同语言来设置不同的缓存呢?

別用 action cache 了,Rails 4 已經移除了。看下 DHH 的這個:

http://37signals.com/svn/posts/3113-how-key-based-cache-expiration-works

不同語言把語言加到 cache key 裡

需要 登录 后方可回复, 如果你还没有账号请 注册新账号