Ruby on rails Rails Activerecord/Postgres时间格式

Ruby on rails Rails Activerecord/Postgres时间格式,ruby-on-rails,postgresql,activerecord,time,rails-activerecord,Ruby On Rails,Postgresql,Activerecord,Time,Rails Activerecord,我正在使用Postgres数据库进行Rails项目。对于我的一个模型,我有一个时间专栏,叫做(聪明地)时间。当我创建模型时,我将此列的数据类型设置为“time”,并且(可能不正确)理解此数据类型仅用于存储时间,而不存储日期 t.time :time 但是,当我向模型提交数据时,时间是正确的,但前缀是错误的日期: time: "2000-01-01 16:57:19" 我只希望该列存储时间(如“16:57:19”)。“时间”是正确的数据类型吗?还是我应该用别的方法来处理这个问题 非常感谢。问题

我正在使用Postgres数据库进行Rails项目。对于我的一个模型,我有一个时间专栏,叫做(聪明地)时间。当我创建模型时,我将此列的数据类型设置为“time”,并且(可能不正确)理解此数据类型仅用于存储时间,而不存储日期

t.time :time
但是,当我向模型提交数据时,时间是正确的,但前缀是错误的日期:

time: "2000-01-01 16:57:19"
我只希望该列存储时间(如“16:57:19”)。“时间”是正确的数据类型吗?还是我应该用别的方法来处理这个问题


非常感谢。

问题是Ruby或Rails中没有时间类。所有时间类都是日期或时间戳(即日期加上一天中的时间)

在数据库中,它将是一个(没有时区)列,并且在数据库中会正常运行。然而,一旦时间进入Ruby,ActiveRecord将添加一个日期组件,因为没有可用的普通时间类,它只是碰巧使用2000-01-01作为日期


数据库中的一切都会很好,但是当您在Rails中的数据库之外时,您必须小心谨慎地忽略日期组件。

Rails应该将
时间
类型映射到Postgres时间类型。你确定在开发环境中使用的是postgres而不是sqlite吗?@max:OP没有映射任何东西,ActiveRecord是。请看下面。是的,我将其设置为在开发中使用Postgres。好的,这很有趣,谢谢。我不知道。