3

我正在开发一种搜索功能,在输入内容时进行 ajax 调用以获取结果。我想在 memory_cache 中使用搜索关键字缓存搜索操作,所以我这样做:

# caches_action with GET parameters

caches_action :search_posts, :cache_path => Proc.new { |c| c.params }

我的问题是我如何也可以使带有参数的操作过期?还有其他方法可以使我的功能正常工作吗?

4

1 回答 1

1

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

第一个(更简单的一个)是将 :expires_in 选项添加到您的 caches_action 语句 - 例如:

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 请求此页面。

您可以在官方文档中阅读更多内容。

于 2013-06-29T14:36:34.370 回答