2015-04-10 2 views
0

У меня есть номер http://thisbythem.com/blog/clientside-timezone-detection/. Вот ключевые файлы/код:Часовой пояс jstz в Rails, похоже, не обновляется, если пользователь меняет системный часовой пояс

приложение/контроллеры/application_controller.rb

around_filter :set_timezone 
... 
private 

    def set_timezone 
    if(current_learner) 
     timezone = Time.zone = current_learner.time_zone 
    else 
     timezone = Time.find_zone(cookies[:timezone]) 
    end 
    Time.use_zone(timezone) { yield } 
    end 

приложение/просмотров/макеты/application.html.erb

<script class="code" type="text/javascript"> 
$(function() { 
    $('#flash_notification').hide().delay(500).slideDown('slow', function() { 
     $(this).delay(4000).fadeOut(); 
    }); 
    $("#flash_notification").live('click', function(){ 
     $(this).stop().fadeOut();; 
    }); 
}); 
//set event times for non-auth users 
var tz = jstz.determine(); 
$.cookie('timezone', tz.name(), { path: '/' }); 
</script> 

В дополнение к выше добавленной JQuery .cookie.js & jstz.main.js к приложению/активам/js. Файл cookie часового пояса устанавливается правильно при первом посещении сайта, однако, если я изменю часовой пояс системы и обновляюсь, я не вижу изменения в cookie. Кроме того, если я попал в консоль Js и сделать:

tz=jstz.determine(); 
tz.name(); 

... Я не вижу обновленный часовой пояс настройки и здесь. В то же время, если я удалю файлы cookie и обновить, тогда я получу новый часовой пояс.

+0

Вы можете попробовать перемещение JS код установки куки 'уаг TZ = jstz.determine(); $ .cookie ('timezone', tz.name(), {path: '/'}); 'inside' $ (function() {' –

ответ

Смежные вопросы