Rails 3 Locale переключается при использовании другого сервера

У меня есть приложение Rails 3.2.3 с default_locale, установленным на :nl. Когда я запускаю приложение с помощью Thin или Unicorn, языковой стандарт приложения устанавливается на :en. Когда я использую Webrick, языковой стандарт правильно установлен на :nl.

Это изменение вызвано фиксацией, которая обновляет несколько сторонних драгоценных камней, хотя я не смог выделить какое-то конкретное обновление драгоценного камня — я могу отменить каждое из них по отдельности и получить тот же результат. Однако, когда я проверяю родителя оскорбительного коммита, все тоже хорошо.

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

Я удалил каждый установленный драгоценный камень и переустановил их все, что не имело никакого значения.

Кто-нибудь знает, что может вызвать такое поведение? И особенно, почему использование вебрика или единорога будет иметь значение?

Редактировать: я точно определил ошибку, вызванную обновлением Draper с 0.11 до 0.12 (выпуск на Github). Не уверен, что это тоже причина.


person avdgaag    schedule 14.05.2012    source источник


Ответы (3)


http://labs.revelationglobal.com/2009/11/13/unicorn_and_i18n.html

person Yuri Barbashov    schedule 14.05.2012
comment
Unicorn может запоминать настройку локали по запросам, но эта проблема не решается перезагрузкой unicorn или переключением на тонкий. Это решается переключением на webrick. Эта ссылка кажется не связанной. - person avdgaag; 14.05.2012

Эта проблема возникала у меня до того, как она была вызвана драгоценным камнем «active_admin», вы можете использовать более раннюю версию, чтобы предотвратить это, я действительно не знаю, какую именно, поэтому вы можете немного поиграть с ней.

другой вариант - установить локаль active_admin в before_filter,

config.before_filter :set_admin_locale

А set_admin_locale находится в application_controller:

def set_admin_locale
  I18n.locale = :nl
end 

надеюсь, это помогло

person dennis    schedule 14.05.2012
comment
Я не использую active_admin. Есть ли у вас какие-либо другие драгоценные камни, которые вызывают такое же поведение? - person avdgaag; 14.05.2012
comment
Просто проверьте свои файлы конфигурации, если есть зависимость от локали для любого из ваших драгоценных камней, вот как я понял. - person dennis; 14.05.2012

Мне удалось отследить эту проблему до плохой практики в моем собственном приложении Rails, которая вызвала ошибку при обновлении драгоценного камня Draper. полное объяснение содержится в документации Draper.

person avdgaag    schedule 18.05.2012