Ruby on rails Rails3终止复杂的操作
假设我的控制器中有:Ruby on rails Rails3终止复杂的操作,ruby-on-rails,memcached,Ruby On Rails,Memcached,假设我的控制器中有: caches_action :my_action, :cache_path => Proc.new { |c| "my_action##{c.params}" } 其中url类似于: /w/:some_id/:additional_params 缓存工作得很好,但是我找不到如何使其过期 我试过: expire_action(:controller => '/my_controller', :action => 'my_action') expire_
caches_action :my_action, :cache_path => Proc.new { |c| "my_action##{c.params}" }
其中url类似于:
/w/:some_id/:additional_params
缓存工作得很好,但是我找不到如何使其过期
我试过:
expire_action(:controller => '/my_controller', :action => 'my_action')
expire_fragment(/my_action/)
store = ActionController::Base.cache_store
store.delete_matched(/my_action/)
但没有人会让我的行动失效。您知道这样的匹配操作是否可能过期吗?从上的注释中,您可以在选项中添加:expires\u:
caches_action :my_action, :expires_in => 1.hour,
:cache_path => Proc.new { |c| "my_action##{c.params}" }
此外,正如您所指出的,您的URL-s的形式是/w/:some_id/:additional_params
,因此URL中没有my_action
。因此,您不会将任何对象与regexp/my\u action/
匹配
这可能会使缓存过期:
expire_fragment(%r{/w/\d+/})
从上的注释中,您可以在
选项中添加:expires\u:
caches_action :my_action, :expires_in => 1.hour,
:cache_path => Proc.new { |c| "my_action##{c.params}" }
此外,正如您所指出的,您的URL-s的形式是/w/:some_id/:additional_params
,因此URL中没有my_action
。因此,您不会将任何对象与regexp/my\u action/
匹配
这可能会使缓存过期:
expire_fragment(%r{/w/\d+/})
对,但是缓存路径中有“我的操作”。我会试试你的建议。对,但是缓存路径中有“我的动作”。我试试你的建议。