Как кешировать запросы в Rails по нескольким запросам - PullRequest
5 голосов
/ 12 апреля 2010

Я хочу кэшировать результаты запроса, чтобы одни и те же результаты выбирались «для более чем одного запроса», пока я не аннулирую кэш. Например, я хочу отобразить боковую панель, в которой есть все страницы книги, очень похоже на указатель книги. Поскольку я хочу показать это на каждой странице книги, я должен загружать это при каждом запросе. Я могу кэшировать обработанный индекс боковой панели, используя кэширование действий, но я также хочу на самом деле кэшировать результаты запроса, которые используются для создания HTML для боковой панели. Предоставляет ли Rails способ сделать это? Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2010

Вы можете кэшировать результаты запроса, используя Хранилище кеша ActiveSupport , которое может поддерживаться хранилищем памяти, таким как memcached, или хранилищем базы данных, если вы предоставляете собственную реализацию. Обратите внимание, что вы захотите использовать хранилище базы данных, если кеш разделен между несколькими процессами Ruby, что будет иметь место при развертывании в Mongrel Cluster или Phusion Passenger.

0 голосов
/ 14 апреля 2010

Вы также можете проверить ваш кэш действий перед запросом базы данных в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...