2010-04-12 10 views
5

Voglio memorizzare nella cache i risultati della query in modo che gli stessi risultati vengano recuperati "per più di una richiesta" fino a quando non invalido la cache. Per esempio, voglio rendere una barra laterale che abbia tutte le pagine di un libro, proprio come l'indice di un libro. Come voglio mostrarlo su ogni pagina del libro, devo caricarlo su ogni richiesta. Posso memorizzare nella cache l'indice della barra laterale reso utilizzando la memorizzazione nella cache delle azioni, ma voglio anche memorizzare nella cache i risultati della query che vengono utilizzati per generare l'html per la barra laterale. Rails fornisce un modo per farlo? Come posso farlo?Come memorizzare nella cache le query in Rails su più richieste

risposta

3

È possibile memorizzare nella cache i risultati della query utilizzando ActiveSupport's cache store, che può essere supportato da un archivio di memoria come memcached o un archivio di database se si fornisce la propria implementazione. Tieni presente che ti consigliamo di utilizzare un archivio di database se la cache è condivisa tra più processi Ruby, cosa che succederà se stai eseguendo il deployment su Mongrel Cluster o Phusion Passenger.

0

Si potrebbe anche verificare per la cache azione prima di interrogare il database nel controller.

Problemi correlati