Переопределение ActiveSupport::TimeWithZone#as_json
у меня сработало:
class ActiveSupport::TimeWithZone
def as_json(options = nil)
if ActiveSupport::JSON::Encoding.use_standard_json_time_format
xmlschema(3)
else
%(#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)})
end
end
end
Обязательно поместите этот код в файл, который требуется вашему приложению Rails. Теперь, когда я конвертирую атрибут made_at в JSON, я получаю миллисекунды:
puts Post.last.created_at.to_json
# => "2012-06-29T11:51:00.841Z"
Также убедитесь, что вы используете Time.zone
для создания экземпляров новых объектов Time, чтобы они демонстрировали то же поведение JSON:
time = Time.zone.now
puts time.to_json
# => "2012-06-29T16:45:30.547Z"
Надеюсь, это кому-нибудь поможет!