Модель ActiveRecord с отметкой даты и времени с атрибутом поддержки часового пояса - PullRequest
0 голосов
/ 26 января 2010

Rails замечательно, что он поддерживает общий часовой пояс в приложении с Time.zone. Мне нужно иметь возможность поддерживать часовой пояс, который пользователь выбирает для записи. Пользователь сможет выбрать дату, время и часовой пояс для записи, и я хотел бы, чтобы все расчеты проводились с учетом выбранного пользователем часового пояса.

Мой вопрос заключается в том, как лучше всего обрабатывать выбранные пользователем часовые пояса. Модель использует time_zone_select и datetime_select для двух разных атрибутов timezone и scheduled_at. При сохранении модели атрибут scheduled_at преобразуется в локально определенный Time.zone.

Когда пользователь возвращается к редактированию атрибута scheduled_at с datetime_select, для даты и времени устанавливается преобразованный часовой пояс Time.zone, а не атрибут timezone. Есть ли хороший способ обработать преобразование в выбранный пользователем часовой пояс?

1 Ответ

0 голосов
/ 26 января 2010

Вы можете обработать это в before_filter, либо в указанном контроллере, либо в приложении. Посмотрите этот пример:

# controllers/application.rb
before_filter :set_user_time_zone

private

def set_user_time_zone
  Time.zone = current_user.timezone if logged_in?
end

Райан Бейтс сделал скринкаст по этому поводу: Часовые пояса в Rails 2.1

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