Sha*_*uno 8 timezone ruby-on-rails activesupport railscasts
我跟随了Ryan Bate的railscast#106 http://railscasts.com/episodes/106-time-zones-revised,它为用户模型添加了一个time_zone字符串.该字符串来自下拉列表:
= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones
Run Code Online (Sandbox Code Playgroud)
我正在尝试查询共享公共时区偏移的所有用户(因此我可以在每天的特定时间向他们发送电子邮件).
User.where(:time_zone => ['Guadalajara','Central America','Mexico City', 'Monterrey', 'Saskatchewan'])
Run Code Online (Sandbox Code Playgroud)
我无法获得特定偏移的时区名称列表.我一直在修补TzInfo和ActiveSupport :: TimeZone.zones_map,但收效甚微.我觉得zones_map应该能够满足我的需求,但是我无法从中得到我想要的数据(尽管我在那里看到它!).
我在这里采取了错误的做法吗?我以为我可以将GMT偏移存储在用户身上,并以这种方式查询?
我的google-fu让我失望了.
Sha*_*uno 16
我已经弄清楚了 -
tz_names = ActiveSupport::TimeZone.zones_map.values.collect{|z| z.name if z.utc_offset == offset}.compact
Run Code Online (Sandbox Code Playgroud)