如何让rail3模型tojson,只返回日期而不返回时间



我有一个带有日期字段的rails 3模型。当我将模型呈现为json时,date字段返回日期和时间。它应该只返回日期,因为这是一个date字段,而不是DateTime字段。

当呈现为json时,如何使我的模型只返回date字段的日期?

我已经尝试过覆盖TimeWithZone和Date的as_json方法,如这两个问题中所述,但这对我不起作用。

fwiw,我们使用的是ruby 1.9.2、rails 3.0.7、mongodb和mongoid 2.0.2。我知道我们的mongo/mongoid版本不支持"Date"字段类型,特别是。它被存储为UTC时间。在通过json发送到客户端的过程中,我试图让数据看起来像是一个日期。

只需覆盖类中的日期getter(假设您的日期字段名为date):

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

这样,无论何时调用some_record.date,它都会在返回之前将TimeWithZone对象转换为Date对象。

相关内容

  • 没有找到相关文章

最新更新