我在我的应用程序中使用缓存,并使用了一种常用方法来获取密钥。
def cache_key(key, options = {}, &block)
unless block.call.nil?
Rails.cache.fetch(key, expires_in: 30.minutes, &block)
else
return nil
end
end
在上面的示例中,我试图获取块的结果。如果它是 nil,我不想获取密钥并返回 nil。在这种情况下,块被调用两次,所以如果我运行这个方法,它会生成两个查询。
我怎样才能更好地简化这个?