我这是为了响应在各种格式,包括AJAX请求请求轨的动作,例如:caches_action如何配置为适用于多种格式?
def index
# do stuff
respond_to do |format|
format.html do
# index.html.erb
end
format.js do
render :update do |page|
page.replace_html 'userlist', :partial => "userlist", :object=>@users
page.hide('spinner')
page.show('pageresults')
end
end
end
end
我已经将这个动作使用缓存memcached的使用:
caches_action :index, :expires_in=>1.hour, :cache_path => Proc.new { |c| "index/#{c.params[:page]}/#{c.request.format}" }
这种模式似乎工作正常缓存HTML结果,但不是JS结果。当JS部分不是来自缓存时,它总是可以正常工作。但是,当存在缓存命中时,页面不会更新。
什么可能会导致这种情况,什么是修复?
更新:挖掘更多它看起来像来自缓存的请求得到MIME类型'文本/ HTML'而不是'文本/ JavaScript'。然而,我不知道如何解决这个问题 - 它是memcached的怪癖吗? (Rails 2.3.2)