【发布时间】:2011-09-08 23:20:42
【问题描述】:
我正在为一个巡回演唱会网站开发一个应用程序,该网站的所有时间(公告时间、打折开始时间和活动开始时间)都是每个特定场地所在时区的本地时间。我让用户在适用的情况下输入日期/时间并运行 before_filter 来设置适当的时区,以便所有内容都以 UTC 格式存储在数据库中。对于“新”表单以及在索引和显示操作中显示时间,完全没有问题。当数据从数据库中取回并进入视图时,我使用 in_time_zone 来根据特定场所进行调整。
唯一的问题是在编辑表单上。日期/时间选择以 UTC 显示数据。当我在网站上工作时,我会在精神上进行调整,但对其他人来说却是令人困惑的。我想做一些类似的事情:
<%= f.datetime_select :start_datetime.in_time_zone(@event.time_zone) %>
或者,在控制器中:
def edit
@performance = Performance.find(params[:id])
@event = @performance.event
@performance.start_datetime = @performance.start_datetime.in_time_zone(@event.time_zone)
end
那么简单地说,<%= f.datetime_select :start_datetime %>。
不幸的是,我还没有找到正确的方法来做到这一点。你有什么值得一试的想法吗?
非常感谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 actionview actionviewhelper