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_s20、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不要な場合があります)。

于 2013-02-26T16:12:41.067 に答える