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 извлекает из кеша, если это возможно?
Ответы
Ответ 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'
Надеюсь, что это поможет.