在开发中,以下(简化)语句总是记录缓存丢失,在生产中,它按预期工作:
@categories = Rails.cache.fetch("categories", :expires_in => 5.minutes) do
Rails.logger.info "+++ Cache missed +++"
Category.all
end
如果我改变配置。在config/development中,Cache_classes从false变为true。Rb,它在开发模式下工作得很好,但是,这使得开发相当痛苦。如果可能的话,是否有任何配置设置像config.cache_classes = false
,除了Rails.cache.fetch是从缓存中抓取?
尝试在/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也是。例如,如果您的缓存存储是dali memcache gem:
# copied from production.rb into development.rb for caching in development
config.cache_store = :dalli_store, '127.0.0.1'
希望对你有帮助。