Almacenamiento en memoria caché de acciones de rails con parámetros de cadena de consulta

¿Cómo puedo almacenar en caché mi controlador REST con Rails donde mis acciones tienen parámetros de cadena de consulta?

Example: GET /products/all.xml?max_price=200 

¡Gracias!

Si desea almacenar en caché una acción, según todos los parámetros de consulta (o decir en casi todos), puede hacer:

 caches_action :my_action, :cache_path => Proc.new { |c| c.params } 

O bien, tal vez desee todos los parámetros que acaba de utilizar para Analytics (pero que no tienen relación con los registros que está obteniendo):

 caches_action :my_action, :cache_path => Proc.new { |c| c.params.delete_if { |k,v| k.starts_with?('utm_') } } 

Para usar la url de solicitud como clave de caché, hago algo como esto:

 caches_action :index, :cache_path => Proc.new {|c| c.request.url } 

En este caso, debe usar el almacenamiento en memoria caché de fragmentos:

en tu controlador:

 cache(params[:max_price], :expires_in => 10.minute) do # get the result end