rails3缓存:expire_action,参数由caches_action(GET)缓存



我正在开发一个搜索功能,当输入内容时,可以调用ajax来获取结果。我想在memory_cache中缓存带有搜索关键字的搜索操作,所以我把它做成这样:

# caches_action with GET parameters
caches_action :search_posts, :cache_path => Proc.new { |c| c.params }

我的问题是,我如何才能使带有参数的操作过期?有没有其他方法可以让我的功能发挥作用?

您有几个选项可以使这种缓存过期。

第一个(更简单的一个)是在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请求了这个页面。

您可以在官方文档中阅读更多信息。

相关内容

  • 没有找到相关文章

最新更新