【发布时间】:2018-01-09 21:57:11
【问题描述】:
为什么在 Rails.cache.fetch 中使用 return 会导致缓存未命中?
# doesn't catch
Rails.cache.fetch("key", expires_in: 12.hours) do
puts "CACHE MISS"
return "HI"
end
# caches
Rails.cache.fetch("key", expires_in: 12.hours) do
puts "CACHE MISS"
"HI"
end
【问题讨论】:
-
因为它不是 C# 兄弟 :) 简而言之:
return立即从fetch方法退出,而不处理(缓存)块产生结果。谷歌ruby block return了解详情。
标签: ruby-on-rails caching