ruby-on-rails - memcache - rails etag
Almacenamiento en memoria caché de acciones de rails con parámetros de cadena de consulta (3)
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
¿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!
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 }
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_'') } }