我正在开发一个搜索功能,当输入内容时,可以调用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请求了这个页面。
您可以在官方文档中阅读更多信息。