我在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
答案 0 :(得分:2)
需要使用@priority_time_zones = ActiveSupport :: TimeZone.us_zones.dup复制数组,否则我仍在更新原始列表