gpt4 book ai didi

ruby-on-rails - Rails 缓存 : replacement for expires_in on Rails. cache.fetch

转载 作者:行者123 更新时间:2023-12-03 16:16:52 27 4
gpt4 key购买 nike

在保持“获取或设置”缓存调用的简洁性的同时清除此警告的最佳方法是什么?我真的很喜欢不必先获取,然后检查零,然后设置...

# DEPRECATION WARNING: Setting :expires_in on read has been deprecated in favor of setting it on write.

@foo = Rails.cache.fetch("some_key", :expires_in => 15.minutes) do
some stuff
end

最佳答案

I really like not having to do a get, then check for nil, then set...



是的,您会希望避免在每次通话时都这样做,但您仍然必须至少这样做一次。像这样简单的事情可能对你有用:
def smart_fetch(name, options, &blk)
in_cache = Rails.cache.fetch(name)
return in_cache if in_cache
val = yield
Rails.cache.write(name, val, options)
return val
end

然后在您的 View 中,您可以执行以下操作:
@foo = smart_fetch("some_key") do
some stuff
end

请注意,Rails 缓存存储有一个默认的过期时间,您可以在创建它时设置它,因此除非您需要不同的过期时间,否则您可能不需要在每次调用时覆盖它。

关于ruby-on-rails - Rails 缓存 : replacement for expires_in on Rails. cache.fetch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6157059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com