как получить рельс 3 модели to_json, вернуть только дату, а не время? - PullRequest
0 голосов
/ 13 июня 2011

У меня есть модель rails 3 с полем Date.когда я отображаю модель как json, поле даты возвращает дату и время.Он должен возвращать только дату, потому что это поле Date, а не поле DateTime.

как мне заставить мою модель возвращать только дату для моих полей Date при рендеринге в json?

я пытался переопределить методы as_json для TimeWithZone и Date, о которых говорилось в эти 2 вопросы , но это не работает для меня.

fwiw, мы используем ruby ​​1.9.2, рельсы 3.0.7, mongodb и mongoid 2.0.2,Я знаю, что наша версия mongo / mongoid не поддерживает, в частности, тип поля «Дата».оно сохраняется как время UTC.я пытаюсь заставить данные выглядеть так, будто это просто дата, на пути к клиенту через json.

1 Ответ

2 голосов
/ 13 июня 2011

Просто переопределите метод получения даты в своем классе (при условии, что ваше поле даты называется date):

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

Таким образом, когда вы вызываете some_record.date, он преобразует объект TimeWithZone в объект Dateпрежде чем вернуть его.

...