1
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

我不完全确定这段代码的作用。是设置缓存变量吗?它以某种方式阅读吗?

4

1 回答 1

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

因此,在某处,这些亚马逊 URL 使用键“20”、“0”等存储在缓存中,然后上面的代码从缓存中检索这些值。

(根据所使用的缓存存储,例如 ActiveSupport::Cache::FileStore 或 Dalli,您可以只使用整数值而无需先转换为字符串,因此这to_s可能是不必要的)。

于 2013-02-26T16:12:41.067 回答