【问题标题】:how to have rail 3 model to_json, return only the date and not time?如何让 Rail 3 模型 to_json,只返回日期而不是时间?
【发布时间】:2011-06-13 15:57:38
【问题描述】:

我有一个带有日期字段的 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 版本不支持“日期”字段类型,特别是。它被存储为 UTC 时间。我试图让数据看起来只是一个日期,通过 json 发送给客户端。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2012-09-19
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      相关资源
      最近更新 更多