premas
@premas
Full-stack web-developer

В продакшене не все строки обновляются при динамической смене локализации в Rails-приложении. Почему?

В продакшене юзаю связку NGINX+PASSENGER.
Локали меняю в ApplicationController так:
I18n.locale = current_user.locale rescue :en
Однако не все фразы переводятся в новоустановленную локаль, пока не сделать, например, touch tmp/restart.txt. Если подождать какое-то время, обновить страницу, то все схватывается. Проблема повторяется не всегда. Что это может быть? Nginx кэширует? Рельса глючит?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vsuhachev
Насколько я могу судить ваш способ страхует вас от исключения, но не от "безошибочного" возврата из current_user.locale какого-нибудь кривого значения

Я бы написал как-то так
I18n.locale = ([current_user.try(:locale)] & [:en, :ru, :etc]).first || :en
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы