3
問一個問題,昨天(here)有關時區,下面是不是與紅寶石2.2.3運行軌道5個:Rails5 - ruby 2.2.3 // ActiveSupport :: TimeZone如何改變?
ActiveSupport::TimeZone.zones_map
從哪裏可以瞭解使用之間,這個新版本的區別是什麼?有什麼辦法可以做到這一點?
問一個問題,昨天(here)有關時區,下面是不是與紅寶石2.2.3運行軌道5個:Rails5 - ruby 2.2.3 // ActiveSupport :: TimeZone如何改變?
ActiveSupport::TimeZone.zones_map
從哪裏可以瞭解使用之間,這個新版本的區別是什麼?有什麼辦法可以做到這一點?
最好的辦法是尋找到了current source code爲TimeZone
在ActiveSupport
:該zones_map
方法has been made private,所以我想你得到5下的Rails這樣的錯誤:那麼現在你有兩個選擇
NoMethodError: private method 'zones_map' called for ActiveSupport::TimeZone:Class
:要麼使用send
調用反正私有方法:
ActiveSupport::TimeZone.send(:zones_map)
,或者甚至更好,如果你需要的是這個地圖的values
(如sugge在answer to your yesterday's question),那麼就沒有必要在zones_map
附近破解。您可以使用all
方法來代替:
ActiveSupport::TimeZone.all
按照source,該all
方法等效於zones_map.values.sort
,這是一個正常的公共方法,所以沒有必要send
什麼。