Rails 3 UI DatePicker - PullRequest
       1

Rails 3 UI DatePicker

0 голосов
/ 22 апреля 2011

У меня странное поведение в приложении rails3.

Когда я выбираю дату с помощью jquery UI datepicker. Я вижу это в моем журнале

Parameters: {"commit"=>"Save", "log"=> {"log_date"=>"04/20/2011"} ....blah...b}
AREL (1.0ms)  INSERT INTO "logs" ("log_date") VALUES ('2011-04-19 22:00:00.000000')

Я пропустил ненужную информацию.

Как видите, Rails не переводит введенную дату правильно. Меняется (в данном случае) с 20.apr на 19.apr.

Когда я позже позвоню

<%= log.log_date.strftime('%d.%m.%y') %> 

Я получаю указанную дату, но когда я делаю этот запрос

@log_times = Log.group(:log_date)

Журналы все на один день раньше, чем могли бы быть.

В консоли журнал в этом примере выглядит следующим образом

irb(main):017:0> Log.last
=> [#<Log id: 246,  log_date: "2011-04-19 22:00:00">]

Таким образом, можно сохранить одну дату в начале, но когда я показываю ее в виде, это правильно.

Почему?

Могу ли я использовать геттер и сеттер, чтобы это исправить?

1 Ответ

2 голосов
/ 22 апреля 2011

Rails построен для обработки часовых поясов по умолчанию. Времена, хранящиеся в базе данных, хранятся в UTC, и Rails должен автоматически их переводить в настроенное местное время.

У вас есть config.time_zone в вашем файле application.rb? Кроме того, я бы рекомендовал использовать DateTime вместо Time, когда это возможно.

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