gpt4 book ai didi

ruby-on-rails - Rails 'config.time_zone' 不适用于加载到 text_field 中的日期时间数据。使固定?

转载 作者:行者123 更新时间:2023-12-04 04:57:31 25 4
gpt4 key购买 nike

当我在表单中使用 datetime_select 时,Rails 将正确调整日期时间数据的时区(根据我的 config.time_zone 设置),并将在 edit 中呈现正确分区的时间 View 相同的形式。

但是,当我尝试将相同的数据检索到 text_field(对于相同形式的相同 edit View )时,Rails 似乎没有针对时区进行调整。

/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>

示例:我的区域的偏移量为 -500。我在表单中输入 8:00 作为 start_time,13:00 UTC 写入数据库,8:00 在 show 上呈现页面(感谢 config.time_zone 考虑了偏移量),但是当我尝试编辑该对象时,表单的 start_time 的 text_field 加载时间为 13:00(如果未更改提交,则当它存储在数据库)。

这是有问题的,因为我试图使用 jQuery UI 的 DatePicker(带有 TimePicker 附加组件),它依赖于 text_field(不适用于 datetime_select)。

有没有办法让 Rails 应用 config.time_zone偏移到文本字段?

运行 Rails 3.0.5,部署到 Heroku。

提前道歉,问了一个非常 similar question几周前。那里的信息仍然适用,我现在对问题有了更好的了解,所以我重新提问。

最佳答案

正如我在问题中所说,我遇到的主要问题是让 ActiveRecord 将现有的“config.time_zone”设置应用于 text_fields。

事实证明,有一种非常简单且面向 future 的方法可以实现这一目标:只需明确添加一个 :value 并提取完全相同的数据——无需调用额外/新方法!就我而言,这意味着:

<%= f.text_field  :time_start, :value => f.object.time_start, :class => "datetimefield" %>

这是我将要尝试的另一个潜在解决方案的中间步骤,我惊讶地发现它完全独立运行(再次使用我已经在 'config/application. rb')。

我已经对其进行了测试,并且在适用时也应用了适当的 DST 偏移量(正如人们所期望的,因为 'config.time_zone' 已设置)。

关于ruby-on-rails - Rails 'config.time_zone' 不适用于加载到 text_field 中的日期时间数据。使固定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com