我有一个 json api,我在其中执行动作缓存:
class Api::V2::TagsController < Api::V2::BaseController
before_filter :set_cache_headers, :only => [:categories, :tribes]
caches_action :categories, :tribes, :expires_in => 1.hour
我发现使此缓存过期的唯一方法是使用:
Rails.cache.delete api_v2_categories_url(:locale => nil)+'.json?'
这太丑了
请问谁能帮我改进这个可怕的黑客?
更多信息:
缓存效果很好,我在日志中看到缓存写入:
Cache write: http://localhost:3000/api/v2/categories.json?
在管理名称空间中,我需要使缓存过期,我尝试过:
expire_action(:controller => '/api/v2/tags', :action => 'categories', :format => :json)
失败并输出:
过期片段视图/localhost:3000/mu-8c54ade2-cbb77ba0-4f0c28d3-607169d0.json?action=categories&controller=api/v2/tags&locale=fr
PS:我试过这个答案没有成功:rails caching: expire_action in another namespace