J'ai une action de rails qui répond aux demandes dans divers formats, y compris les requêtes AJAX, par exemple:Comment caches_action peut-il être configuré pour fonctionner avec plusieurs formats?
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
J'ai mis cette action à mettre en cache à l'aide Memcached en utilisant:
caches_action :index, :expires_in=>1.hour, :cache_path => Proc.new { |c| "index/#{c.params[:page]}/#{c.request.format}" }
Ce modèle semble fonctionne bien pour la mise en cache du résultat HTML mais pas pour le résultat JS. La partie JS fonctionne toujours correctement lorsqu'elle ne provient pas du cache. Cependant, quand il y a un cache, la page ne se met pas à jour.
Ce qui pourrait causer ceci et quelle est la solution? Mise à jour: en y cherchant plus, il semble que les requêtes du cache obtiennent le type mime 'text/html' au lieu de 'text/javascript'. Cependant, je ne suis pas sûr de savoir comment résoudre ce problème - est-ce une bizarrerie de memcached? (Rails 2.3.2)