在为“ / edit”视图填充表单字段时,不应用Rails应用程序config.time_zone

| 我在Rails应用程序中指定了config.time_zone,但是在表单字段中检索到的时间仍然呈现为UTC(这会在更新时产生问题)。难道不应该将其转换为指定时间的当地时间吗? /config/application.rb(仅相关行):
module ExampleSite
    class Application < Rails::Application

        config.time_zone = \'Central Time (US & Canada)\'
    end
end
/events/edit.html.erb(完整文件):
<h1>Edit This Event</h1>
<%= form_for(@event) do |f| %>
    <%= render \'fields\', :f => f %>
    <div class=\"actions\">
        <%= f.submit \"Update Event\" %>
    </div>
<% end %>
/events/_fields.html.erb(仅相关行:)
<div class=\"field\">
    <%= f.label      :time_start, \"Start Time\" %><br />
    <%= f.text_field  :time_start, :class => \"datetimefield\" %>
</div>
<div class=\"field\">
    <%= f.label      :time_end, \"End Time (if applicable)\" %><br />
    <%= f.text_field  :time_end, :class => \"datetimefield\" %>
</div>
当我输入datetime字符串以创建新事件时,该值已正确保存(以UTC格式),并根据需要在本地视图中呈现在config.time_zone开关之前呈现UTC的位置(在本地时区中)。知道已完成切换)。 但是当我去编辑事件的任何其他属性时,在/ edit视图中呈现给表单字段的时间就是UTC时间-这意味着当我更新事件时,该时间将被重新保存,就像时间已经重新输入并假定为本地,这将使系统将“ updated”时间属性转换为UTC进行存储,从而使时间偏移了5个小时(与UTC的本地差异)。 如何使本地化时间在表单字段中呈现? 运行Rails 3.0.5,部署到Heroku(尽管开发和生产环境中都存在问题)     
已邀请:
        事实证明,真正的问题出在text_fields本身。 我的\'config.time_zone \'设置在我的\'index \'和\'show \'视图中运行良好(没有任何其他方法或黑客攻击),并且在\'edit \'视图中也有效,只要我使用datetime_select而不是text_field。 因为这不是我的选择(我使用的是jQuery UI的DatePicker,它需要一个text_field),所以我研究了text_field特定的问题,并回答了我自己关于该主题的另一个StackOverflow问题。 如果您遇到text_field问题,请查看该问题/答案。     
        只需使用此:
  <div class=\"field\">
    <%= f.label :time_start %><br />
    <%= f.datetime_select :time_start, :class => \"datetimefield\" %>
  </div>
我为此创建了一个小应用程序,并且可以正常工作。     
        您可以执行以下操作:
heroku config:add TZ=America/Chicago
那应该可以解决您在Heroku上的问题。     

要回复问题请先登录注册