如何有轨道3模型to_json,只返回日期而不是时间?

时间:2011-06-13 15:57:39

标签: json ruby-on-rails-3 date model mongoid

我有一个带有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去客户端的路上。

1 个答案:

答案 0 :(得分:2)

只需覆盖班级中的日期获取者(假设您的日期字段名为date):

class YourClass < ActiveRecord::Base
  def date
    self[:date] && self[:date].to_date
  end
end

这样每当你调用some_record.date时,它会在返回之前将TimeWithZone对象转换为Date对象。