2

我有两个导轨模型,MyParentMyChild.

我正在尝试使用 rails.select()方法构建查询,以有效地为数据库增加大量行。

我想从两个表中拉回一些列,但是当我引用日期时间(或时间戳)类型但不在原始模型中的列时,它会作为字符串返回。

例如:

irb(main)> MyChild.select(['created_at as child_date', 'created_at']).first.child_date.class
=> String #Bad!!!
irb(main)> MyChild.select(['created_at as child_date', 'created_at']).first.created_at.class
=> ActiveSupport::TimeWithZone  #YAY!!!!

当我尝试使用joins().

我如何告诉 Rails 我想要child_date一个 ActiveSupport::TimeWithZone 对象?

我正在使用最新版本的 Rails 3.2。

4

1 回答 1

1

我能想出的唯一解决方案是将生成的日期转换回 TimeWithZone 对象

Time.zone.parse(MyChild.select(['created_at as child_date']).first.child_date)
# returns a ActiveSupport::TimeWithZone object
于 2013-05-09T16:07:50.360 回答