I have a rails action that responds to requests in various formats, including AJAX requests, for example:
def index
respond_to do |format|
format.html do
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
I set this action to cache using memcached using:
caches_action :index, :expires_in=>1.hour, :cache_path => Proc.new { |c| "index/#{c.params[:page]}/#{c.request.format}" }
This template works fine for caching an HTML result, but not for a JS result. Part of JS always works great when it doesn't come from the cache. However, when the cache hits, the page does not refresh.
What can cause this and what is a fix?
Update: delving into this more, it looks like requests from the cache are getting the mime type "text / html" instead of "text / javascript". However, I'm not sure how to fix this - is this a memcached quirk? (Rails 2.3.2)