我正在开发一个搜索功能,在输入内容时会调用ajax来获取结果。我想用memory_cache中的搜索关键字缓存搜索操作,所以我这样做:
# caches_action with GET parameters
caches_action :search_posts, :cache_path => Proc.new { |c| c.params }
我的问题是如何使用参数使操作过期?有没有其他方法可以使我的功能有效?
答案 0 :(得分:1)
您有几种方法可以使此类缓存失效。
第一个(更简单的一个)是在你的caches_action语句中添加:expires_in选项 - 例如:
caches_action :search_posts, :cache_path => Proc.new { |c| c.params }, :expires_in => 16.hours.to_i
这会在一段时间后自动使此密钥失效。
或者您可以使用控制器中的expire_action方法使此缓存失效。应该是这样的:
expire_action :action => 'posts', :q => 'query'
鉴于您已请求此页面使用一个参数q = query。
您可以阅读更多in the official documentation。