我有一个带有Date字段的rails 3模型。当我将模型渲染为json时,日期字段返回日期和时间。它应该只返回日期,因为这是Date字段而不是DateTime字段。
当渲染到json时,如何让我的模型仅返回我的Date字段的日期?
我已尝试覆盖TimeWithZone和Date的as_json方法,正如these 2 questions中所述,但这对我不起作用。
fwiw,我们使用的是ruby 1.9.2,rails 3.0.7,mongodb和mongoid 2.0.2。我知道我们的mongo / mongoid版本不支持“Date”字段类型。它被存储为UTC时间。我试图让数据看起来像是一个约会,在通过json去客户端的路上。
答案 0 :(得分:2)
只需覆盖班级中的日期获取者(假设您的日期字段名为date
):
class YourClass < ActiveRecord::Base
def date
self[:date] && self[:date].to_date
end
end
这样每当你调用some_record.date
时,它会在返回之前将TimeWithZone对象转换为Date对象。