如何使Rail 3模型to_json,仅返回日期而不是时间?

问题描述

| 我有一个带有Date字段的rails 3模型。当我将模型呈现为json时,date字段将返回日期和时间。它应该只返回日期,因为这是一个Date字段,而不是DateTime字段。 呈现为json时,如何使模型仅返回Date字段的日期? 我已经尝试覆盖TimeWithZone和Date的as_json方法,如在这两个问题中所讨论的那样,但这对我不起作用。 首先,我们使用的是ruby 1.9.2,rails 3.0.7,mongodb和mongoid 2.0.2。我知道我们的mongo / mongoid版本不支持\“ Date \”字段类型。它存储为UTC时间。我正在尝试让数据看起来像只是一个日期,并通过json传递到客户端。     

解决方法

        只需在您的课程中覆盖日期获取器即可(假设您的日期字段称为
date
):
class YourClass < ActiveRecord::Base
  def date
    self[:date] && self[:date].to_date
  end
end
这样,无论何时调用“ 2”,它都会在返回之前将TimeWithZone对象转换为Date对象。