2013-02-26 3 views
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 

Я не совсем уверен, что делает этот код. Является ли он настройкой переменных кэша? Это как-то чтение?Что делает Rails.cache.fetch * .to_s?

ответ

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 может оказаться ненужным).