Кеширование страниц Rails не работает, и кеширование действий вызывает 'Filter Chain Haled' - PullRequest
0 голосов
/ 15 декабря 2009

установка

Controller -> Action Index 
  results = Model.all (SQL Call)

View
  Loop through and render partial from results.  Call count for result row  (SQL Call)

Partial 
  Manage result data and add point on Google map  

Я пытаюсь кэшировать эту страницу, поэтому я добавляю caches_page: index к своему контроллеру. Когда я просматриваю эту страницу, она создает успешный кеш шаблона (но не частичный). Однако он все равно делает все вызовы sql, которые не должен.

Изменяя его caches_action: index вызовы sql не выполняются, но я получаю две ошибки «Остановлена ​​цепочка фильтров».

Страница отображается правильно, поэтому я не знаю, стоит ли мне это просматривать или нет.

Если кто-нибудь сможет объяснить, почему caches_page не работает или куда мне следует перейти отсюда в цепочке фильтров, остановленной, я был бы очень признателен.

Спасибо!

1 Ответ

2 голосов
/ 16 декабря 2009

Во-первых, если вы хотите протестировать кэширование в среде разработки, убедитесь, что вы установили:

# in config/environments/development.rb
config.action_controller.perform_caching = true

Во-вторых, кэширование страниц работает путем записи статического HTML-файла в каталог / public с тем же URL-адресом, что и кэшируемое действие. Когда приходит запрос, ваш веб-сервер видит статический файл и обслуживает его, полностью избегая Rails. Это так же, как изображения обслуживаются. Если вы измените config.action_controller.page_cache_directory ваши статические файлы будут записаны в неправильный каталог / URL и не будут замечены веб-сервером.

Наконец, обязательно удалите сгенерированные статические файлы, если вы вносите изменения в кэшированные действия, которые их производят, в противном случае измененные действия не будут выполняться. Это верно, даже если вы отключите кэширование! Вам все еще нужно удалить файлы.

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