Я написал свое собственное промежуточное программное обеспечение, чтобы предоставить конечную точку API нашему приложению. Среднее ПО загружает классы, которые предоставляют методы API, и направляет запрос соответствующему классу/методу. Классы загружаются динамически через String#constantize
.
При запуске в режиме разработки классы автоматически перезагружаются. Однако, если есть неперехваченное исключение, которое впоследствии обрабатывается промежуточным программным обеспечением Failsafe, автоматическая перезагрузка перестает работать. constantize
все еще вызывается, но, похоже, возвращает старый класс.
Казалось бы, есть что-то еще, что выгружает классы, а неперехваченное исключение нарушает его. Что это может быть?
Запуск Ruby 1.8.7, Rails 2.3.3 и Thin 1.2.2.