在开发中,以下(简化)语句始终记录缓存未命中,在生产中它按预期工作:
@categories = Rails.cache.fetch("categories", :expires_in => 5.minutes) do
Rails.logger.info "+++ Cache missed +++"
Category.all
end
如果我在config / development.rb中将config.cache_classes从false更改为true,那么它在开发模式下也可以正常工作,但这会让开发变得相当痛苦。是否有任何配置设置类似config.cache_classes = false
,除非Rails.cache.fetch从缓存中获取(如果可能)?
答案 0 :(得分:32)
尝试将以下内容放在 /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 memcache gem:
# copied from production.rb into development.rb for caching in development
config.cache_store = :dalli_store, '127.0.0.1'
希望有所帮助。