API inicial de almacenamiento en caché

Alguien puede señalarme la técnica correcta que se relaciona con el almacenamiento en caché de las respuestas API.

He revisado muchas preguntas, guías y publicaciones existentes, pero en algún lugar algún elemento crucial no funciona correctamente.

Modelo

class Cleartrip include HTTParty debug_output $stdout base_uri "api.staging.cleartrip.com/air/1.0/search" headers 'X-CT-API-KEY' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' format :xml def self.get_flight(url) Rails.cache.fetch(url, :expires => 1.hour) do response = get(url) if response.success? response else raise response.message end end end end 

Controlador

 @flight = Cleartrip.get_flight("?from=DEL&to=BLR&depart-date=2014-08-10&adults=1&children=0&infants=0") 

Desarrollo.rb

  config.cache_classes = false # Do not eager load code on boot. config.eager_load = false # Show full error reports and disable caching. config.consider_all_requests_local = true config.action_controller.perform_caching = true config.cache_store = :null_store 

En lugar de :null_store , anteriormente tenía :memory y recibí Type Error: Can't dump IO .

Incluso con las configuraciones actuales, en cada recarga llega al servidor y toma mucho tiempo mostrar el resultado.

¿Qué es lo que hay que hacer? ¿Qué técnica o gem, para el caso, se ocupa del almacenamiento en caché? Hay muchos sitios de búsqueda de vuelos, como Google.com/flights o Cleartrip.com, donde la representación de los resultados es casi instantánea. ¿Conoces algún consejo o truco?

Gracias.

Esto deberia hacer

 if response.success? response.parsed_response else