将日期字段另存为dd / mm / yyyy rails

时间:2019-01-29 06:07:03

标签: postgresql ruby-on-rails-3 date

在我们的date_of_birth模型中,我们有一个date类型的User字段。

当我尝试保存User对象时。

u = User.last
u.date_of_birth = "31-03-1987"
u.save

结果:

u.date_of_birth
=> Tue, 31 Mar 1987

但是如果我将-替换为/

u.date_of_birth = "31/03/1987"
u.save

结果:

u.date_of_birth
=> nil

问题

这是默认行为吗?

或者我想念什么吗?

1 个答案:

答案 0 :(得分:0)

由于date_of_birth的格式无效,因此显然将其设置为nil。

日期时间的标准数据库格式为YYYY-MM-DD HH:MM:SS

使用postgres db获得更高版本的Rails,即Rails 3+,您不会遇到此类问题,

>   u.created_at = '03/04/2017'
# => "03/04/2017" 
> u.created_at 
# => Mon, 03 Apr 2017 00:00:00 IST +05:30

该问题确实存在于旧版本的ruby中。我建议您更新或更改字符串日期输入的格式