Rails to_json Почему метки времени ломаются и устанавливаются на 2000-01-01T01: 31: 35Z - PullRequest
1 голос
/ 17 июня 2011

Я строю объект json в рельсах следующим образом:

@list = Array.new

  @list << {
    :created_at => item.created_at
  }
end

@list.to_json

Проблема заключается в том, что браузер получает это примерно так:

"created_at\":\"2000-01-01T01:31:35Z\"

Что явно не так,в БД оно имеет:

2011-06-17 01:31:35.057551

Почему это происходит?Есть ли способ убедиться, что это правильно отображается в браузере?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Вам нужно провести некоторое тестирование / отладку, чтобы увидеть, как проходит эта дата. Для меня в консоли Rails (Rails 3.0.9, Ruby 1.9.2)

ruby-1.9.2-p180 :014 > d = Date.parse("2011-06-17 01:31:35.057551")
 => Fri, 17 Jun 2011 
ruby-1.9.2-p180 :015 > @list = {:created_at => d}
 => {:created_at=>Fri, 17 Jun 2011} 
ruby-1.9.2-p180 :016 > @list.to_json
 => "{\"created_at\":\"2011-06-17\"}" 

т.е. это просто отлично Вы видите, действительно ли дата в порядке?

0 голосов
/ 17 июня 2011

Проблема в том, как to_json убегает от персонажей. Здесь очень хороший пост на эту тему:

Рельсы to_json или as_json

Возможно, вам придется посмотреть на переопределение as_json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...