我在我的应用程序中使动作缓存过期时遇到了一些问题。
这是我的控制器:
class ToplistsController < ApplicationController
caches_action :songs, cache_path: :custom_cache_path.to_proc
def custom_cache_path
"#{params[:when]}-#{params[:what]}-#{params[:controller]}-#{params[:action]}"
end
def songs
# ...
end
end
我不知何故需要能够重置自定义缓存路径,但我不知道如何。
我已经尝试过使用这种技术,但没有成功。看起来我的缓存引擎 Dalli 不支持正则表达式匹配器。
尝试使用此代码时出现此错误:
expire_fragment(/songs/)
ActiveSupport::Cache::DalliStore does not support delete_matched
我尝试使用这行代码进行调试,但它被忽略了。
before_filter only: [:songs]
expire_fragment(custom_cache_path)
end
我正在使用 Rails 3.1.0.rc6、Dalli 1.0.5 和 Ruby 1.9.2。