小编Sha*_*uno的帖子

ActiveSupport :: TimeZone偏移字符串列表

我跟随了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让我失望了.

timezone ruby-on-rails activesupport railscasts

8
推荐指数
1
解决办法
7809
查看次数

ruby 一次性对符号数组进行重新排序

我正在寻找最有效的方法来做到这一点。任何带连字符的内容都必须位于数组中任何不带连字符的符号之前。我的天真的解决方案对数组进行两次过滤并连接。我觉得应该有一种方法可以一次而不是两次完成此任务。

input = [:en, :de, :es, :"es-MX", :fr, :ko, :"ko-KR", :"en-GB"]

output = [:"es-MX", :"ko-KR", :"en-GB", :en, :de, :es, :fr]
Run Code Online (Sandbox Code Playgroud)

天真的解决方案:

def reorder(input)
  ## find everything with a hypen
  output = input.select { |l| 
    l.to_s.include?('-')
  }

  # find everything without a hyphen and concat to output
  output.concat(input.reject { |l| 
    l.to_s.include?('-')
  })
end
Run Code Online (Sandbox Code Playgroud)

ruby arrays enumerable

1
推荐指数
1
解决办法
107
查看次数