Кэширование фрагментов Rails 3 ничего не делает

#ruby-on-rails #ruby-on-rails-3 #caching

#ruby-on-rails #ruby-on-rails-3 #кэширование

Вопрос:

Пытаюсь заставить кэширование фрагментов работать в Rails 3.0.9.

Я установил это в development.rb:

 config.action_controller.perform_caching = true
  

И перезапустил сервер (webrick). Затем установите это на мой взгляд:

 <% cache("tags_json") do %>
    [Content to be cached]
<% end %>
  

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

Я новичок в кэшировании, поэтому я уверен, что я просто забыл что-то настроить. Любая помощь приветствуется, спасибо!

Комментарии:

1. Есть ли файлы в вашем каталоге tmp / cache?

2. Нет. Извините, что так долго отвечаю.

Ответ №1:

Помимо настройки выполнения кэша ActionController, вам также необходимо установить хранилище кэша в общей конфигурации. Поместите

config.cache_store = xyz,abc

cache_store настраивает, какое хранилище кэша использовать для кэширования Rails. Параметры включают один из символов : memory_store, :file_store, :mem_cache_store или объект, который реализует API кэша.

По умолчанию используется значение :file_store, если существует каталог tmp /cache, и значение :memory_store в противном случае. Я рекомендую использовать хранилище dalli в сочетании с клиентом memcached.