Rails3 - Кэширование в режиме разработки с Rails.cache.fetch - PullRequest
16 голосов
/ 12 апреля 2011

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

@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 Ответ

32 голосов
/ 04 мая 2011

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

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

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

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

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

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