使用如下的Rails.cache.fetch甚至在我的开发环境中缓存(关闭缓存):
@boat_features = Rails.cache.fetch("boat_features", expires_in: 10.minutes) do
BoatFeature.all
end
有没有人遇到过这个?
答案 0 :(得分:8)
这是正常的。这种缓存在开发过程中没有被关闭。在之前的应用中,这是一个问题,我们使用了内存存储,然后添加了一个在每次请求后都Rails.cache.clear
的中间件。
像
这样的东西config.middleware.use ClearCache
in development.rb
然后你的ClearCache中间件应该看起来像
class ClearCache
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
ensure
Rails.cache.clear
end
end
在Rails 3.2中,还有ActiveSupport::Cache::NullStore
答案 1 :(得分:7)
我遇到了同样的问题。我经常工作,然后想出了这个简单的解决方案。在开发配置文件config/environments/development.rb
中添加这些设置
config.perform_caching = false
config.cache_store = :null_store