以与created_at相同的格式保存自定义日期时间

时间:2014-07-01 10:40:19

标签: ruby-on-rails-3

我正在构建一个Rails 3.2 Web应用程序。 在这个应用程序中有一个名为Timereport的模型。在这个模型中,我得到了一个名为reported_at的属性。这样使用,以便报告时间的用户可以选择要使用的自定义reporting_at日期。

在服务器端,我将其保存为:

report.reported_at = DateTime.parse(params[:reported_at])

当我使用控制台时,我看到日期保存如下:

#<Timereport id: 1583, account_id: 24, created_at: "2014-07-01 10:30:16", updated_at: "2014-07-01 10:30:16", by_admin: true, timereportable_id: 46, timereportable_type: "Project", reported_at: "2014-07-01 00:00:00">

当我在控制台中获取属性时,我得到:

t.reported_at
=> Mon, 30 Jun 2014 19:00:00 CDT -05:00

但是当我得到updated_at时,我得到了:

t.created_at
=> Tue, 01 Jul 2014 05:30:16 CDT -05:00

如何以与created_at相同的格式保存reported_at,使其行为方式相同?

感谢所有人的帮助!

1 个答案:

答案 0 :(得分:1)

确保reported_at字段是数据库中的日期时间字段。

然后,不是为用户提供输入日期和时间的文本字段,而是使用datetime_select元素。这将生成一个选择工具,以ActiveRecord可以理解的格式提交datetime元素,并且可以转换为正确的格式。

您将不必使用DateTime.parse(params [:reported_at]),而只是以正常方式从params加载数据。