0

我在 SimpleForm 中使用时区字段,

我的要求是将美国时区 + 伦敦显示在顶部作为“优先”值。

我的形式是这样的:

<%= p.input :time_zone, :label => "Time Zone", :priority => (ActiveSupport::TimeZone.us_zones << ActiveSupport::TimeZone['London'])%>

这可行,但每次重新加载表单时都会添加另一个“伦敦”副本。(我可以明白为什么它将'London'值添加到预定义数组中,但是:我已经尝试将它添加到我的控制器中:

@priority_time_zones = ActiveSupport::TimeZone.us_zones
@priority_time_zones << ActiveSupport::TimeZone['London']

然后将表格更改为:

<%= p.input :time_zone, :label => "Time Zone", :priority => @priority_time_zones %>

但这并不能解决它(奇怪),不明白为什么每次重新加载时它都会不断添加另一个“伦敦”。有什么想法吗??谢谢

4

1 回答 1

2

需要使用@priority_time_zones = ActiveSupport::TimeZone.us_zones.dup 来复制数组,否则我还在更新原始列表

于 2012-07-04T13:15:32.217 回答