2010-04-12 10 views
5

Chcę cache wyników kwerend, tak aby te same wyniki były pobierane "dla więcej niż jednego żądania", aż unieważni pamięć podręczną. Na przykład chcę renderować pasek boczny z wszystkimi stronami książki, podobnie jak indeks książki. Ponieważ chcę to pokazać na każdej stronie książki, muszę ją załadować na każde żądanie. Mogę buforować renderowany indeks paska bocznego za pomocą buforowania akcji, ale chcę również faktycznie buforować wyniki zapytania, które są używane do generowania html dla paska bocznego. Czy Rails zapewnia sposób na zrobienie tego? Jak mogę to zrobić?Jak wyszukiwać w pamięci podręcznej w Railsach na wiele żądań

Odpowiedz

3

Możesz buforować wyniki zapytania za pomocą ActiveSupport's cache store, które można poprzeć przez magazyn pamięci, taki jak memcached, lub bazę danych, jeśli zapewnisz własną implementację. Zauważ, że będziesz chciał użyć magazynu baz danych, jeśli pamięć podręczna jest współużytkowana w wielu procesach Ruby, co będzie miało miejsce w przypadku wdrażania do Klastra Mongrel lub Phusion Passenger.

0

też mógł sprawdzić na swojej pamięci podręcznej działania przed przeglądając bazę danych w kontrolerze.