假设我有这样的方法:
def foo
Rails.cache.fetch("cache_key", :expires_in => 60.minutes) do
return_something
end
end
return_something
有时会返回一个nil
值。发生这种情况时,我不希望将nil
值缓存 60 分钟。相反,下次我调用时foo
,我希望传递给的块fetch
再次执行。
Rails.cache.fetch
默认情况下是这样工作的吗?还是我必须实现这个功能?
更新(有答案)
事实证明,答案是否定的,至少在使用 Memcached 时是这样。