Rails не обновляет код - PullRequest
1 голос
/ 18 июля 2009

При разработке приложения на Rails я обычно оставляю dev-сервер, работающий локально (mongrel), пока работаю над кодом. Изменения в коде вступают в силу после быстрого обновления. ЗА ИСКЛЮЧЕНИЕМ изменений не вступили в силу для класса, который я писал в папке Lib в папке. Это известная проблема? Что может быть причиной этого? Очень печально работать над проблемой некоторое время, не имея решений, а только выяснить, что ни у одного из этих решений не было возможности работать.

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 18 июля 2009

Я обнаружил, что есть некоторые папки, которые сервер Rails dev (я использую WEBrick) автоматически не сканирует на наличие изменений. Я точно знаю, что это папка vendor / plugins, но мне кажется, что у меня возникли проблемы с изменением содержимого в папке lib.

По сути, каждый раз, когда я изменяю что-то вне приложения, я перезагружаю сервер dev.

0 голосов
/ 18 июля 2009

В приложении PHP код перезагружается при каждом запросе, поэтому вам нужно что-то вроде APC, чтобы сделать это быстро. У Rails другая модель, приложение загружается один раз и может обрабатывать несколько запросов.

В Rails есть специальная функция для перезагрузки измененных файлов, но она ограничена только несколькими каталогами. Более того, он не будет обрабатывать изменения в коде, который вызывается во время запуска (например, environment.rb или плагины). В этом случае вам необходимо перезагрузить сервер.

Функция перезагрузки класса по умолчанию включена в среде разработки с помощью следующего параметра конфигурации

config.cache_classes = false
...