Подтвердить что ты не робот

Rails3 - Кэширование в режиме разработки с помощью Rails.cache.fetch

В разработке следующий (упрощенный) оператор всегда регистрирует пропуски кеша, в процессе производства он работает как ожидалось:

@categories = Rails.cache.fetch("categories", :expires_in => 5.minutes) do
  Rails.logger.info "+++ Cache missed +++"
  Category.all
end

Если я изменю config.cache_classes от false до true в config/development.rb, он также работает в режиме разработки, однако это делает процесс разработки довольно болезненным. Есть ли какой-либо параметр конфигурации, похожий на config.cache_classes = false, за исключением того, что Rails.cache.fetch извлекает из кеша, если это возможно?

4b9b3361

Ответ 1

Попробуйте разместить следующее в /config/environments/development.rb:

# Temporarily enable caching in development (COMMENT OUT WHEN DONE!)
config.action_controller.perform_caching = true

Кроме того, если ваша конфигурация хранилища кэша находится в /config/environments/production.rb, вам нужно будет скопировать соответствующую строку в development.rb, Например, если ваш кэш-хранилище является драгоценным камнем памяти Dalli:

# copied from production.rb into development.rb for caching in development
config.cache_store = :dalli_store, '127.0.0.1' 

Надеюсь, что это поможет.