Rails3 - 使用Rails.cache.fetch在开发模式下进行缓存

时间:2011-04-12 13:51:30

标签: ruby-on-rails-3 caching activerecord

在开发中,以下(简化)语句始终记录缓存未命中,在生产中它按预期工作:

@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从缓存中获取(如果可能)?

1 个答案:

答案 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' 

希望有所帮助。