Rails: время системы производства и разработки портит показатели аналитики в приложении - PullRequest
0 голосов
/ 14 января 2012

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

Все работало хорошо, пока я не запустил его на рабочем сервере.

Внезапно все показатели были на 5 часов раньше времени (я в Торонто, по восточному поясному времени).

Как правильно показывать данные конечному пользователю, находящемуся в Торонто? И какой лучший способ показать данные о показах людям в Калифорнии? Какой будет лучший метод или алгоритм для отображения метрик по местному времени?

Боюсь, что пользователь из Калифорнии увидит увеличение впечатления в 4 часа утра на следующий день, но он все еще в 8 часов вечера накануне. Это не убило бы приложение, но это определенно странный пользовательский опыт.

1 Ответ

1 голос
/ 14 января 2012

Это зависит от того, какой контроль над часовыми поясами вы хотите, чтобы ваши пользователи имели.

Например, простейшим решением вашей первоначальной проблемы, вероятно, было бы просто установить часовой пояс приложений Rails по умолчанию на EST, поскольку ваш рабочий сервер, вероятно, настроен на UTC (разница в 5 часов). Затем просто указание где-то, что ваше время основано на EST, объясняет пользователю, почему метрики располагаются в течение времени дня, которое они делают.

Для более точного управления пользователем может быть полезно предоставить предпочтение, позволяющее пользователю устанавливать собственный часовой пояс. Затем вы используете фильтр в контроллере приложения для установки часового пояса каждого запроса для текущего пользователя, а не глобальной конфигурации. Это может занять довольно много времени, чтобы просмотреть ваше приложение и убедиться, что все времена, отображаемые / анализируемые приложением, отображаются соответствующим образом.

Вот краткая статья, показывающая некоторый фактический код для этих двух методов http://databasically.com/2010/10/22/what-time-is-it-or-handling-timezones-in-rails/

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