Моя психическая отладка говорит, что тебя укусила модель разветвления Пассажира.
По сути, Passenger разветвляет кучу рабочих процессов из основного процесса, в который уже загружена ваша среда rails.Это сокращает время, необходимое рабочим для инициализации, поскольку все ваши модели, контроллеры и другие классы уже существуют.
Теперь из документации Passenger:
Обратите внимание, что Phusion Passenger автоматически восстанавливает соединение с базой данных при создании нового рабочего процесса, поэтому обычно вы не сталкиваетесь с базой данных.проблемы при использовании интеллектуального режима порождения.
Ваш оператор connection.execute выполняется при загрузке TheClass.На самом деле это происходит только один раз, в родительском процессе, который разветвляет всех рабочих.Каждый из сотрудников устанавливает свои собственные соединения, но никогда не запускает ваш запрос «set language», так как TheClass уже загружен.Он работает в режиме разработки, потому что каждый раз перезагружает ваши классы.
Там может быть какая-то настройка, которую вы можете выполнить в application.rb, чтобы сообщить ActiveRecord свой язык соединения, в противном случае вам, вероятно, придется сделать уродливый хак, выполнив этот запрос в before_filter или что-то в этом роде.