if Rails.cache
Rails.cache.fetch(20.to_s) # ec2-50-17-225-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch(0.to_s) # ec2-174-129-33-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch(10.to_s) # ec2-174-129-16-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch(30.to_s) # ec2-54-242-2-XX.compute-1.amazonaws.com:11212
end
我不完全确定这段代码的作用。它是否设置缓存变量?是以某种方式阅读?
答案 0 :(得分:2)
to_s
只是将数字(20,0等)转换为字符串(“20”,“0”等)。所以它与此相同:
if Rails.cache
Rails.cache.fetch("20") # ec2-50-17-225-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch("0") # ec2-174-129-33-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch("10") # ec2-174-129-16-XX.compute-1.amazonaws.com:11212
Rails.cache.fetch("30") # ec2-54-242-2-XX.compute-1.amazonaws.com:11212
end
所以在某个地方,这些amazonaws URL使用键“20”,“0”等存储在缓存中,然后上面的代码从缓存中检索这些值。
(根据所使用的缓存存储,例如使用ActiveSupport :: Cache :: FileStore或Dalli,您可以使用整数值而不首先转换为字符串,因此to_s
可能是不必要的)。