在为“ / 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(尽管开发和生产环境中都存在问题)
没有找到相关结果
已邀请:
3 个回复
体悉
攫怂绵十
我为此创建了一个小应用程序,并且可以正常工作。
联海
那应该可以解决您在Heroku上的问题。