Rails时区优先级字段多次显示相同的时区

时间:2012-05-02 13:39:52

标签: ruby-on-rails timezone simple-form

我在SimpleForm中使用了Timezone字段,

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

这是我的形式:

<%= 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 %>

但这并没有解决它(奇怪的是),不明白为什么它会在每次重新加载时继续添加另一个“伦敦”。 有什么想法吗??日Thnx

1 个答案:

答案 0 :(得分:2)

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