Мне недавно пришло в голову перезапустить сервер разработки каждый раз, когда я меняю свой код. Мой файл development.rb по-прежнему имеет следующую строку:
config.cache_classes = false
Я попытался использовать отладчик, чтобы убедиться, что это значение застряло. Для этого я установил свою конфигурацию в глобальную переменную в environment.rb:
$my_initializer = Rails::Initializer.run do |config| ... end
то я поместил строку debugger
в один из моих контроллеров, чтобы я мог это сделать:
(rdb:2) $my_initializer.configuration.cache_classes false
Таким образом, исключена возможность того, что значение cache_classes
было установлено в true
где-то в другом месте. Я пробовал использовать как Mongrel, так и WEBrick, и это все еще происходит.
Что еще может заставить Rails не перезагружать мой код с каждым запросом?
Я запускаю:
Монгрель 1.1.5
WEBrick 1.3.1
Rails 2.3.8
Ruby 1.8.7 p253
EDIT: в предложении @Daemin я проверил, что mtime моих файлов на самом деле обновляется, когда я сохраняю их в текстовом редакторе (Textmate)
merced:controllers lance$ ls -l people_controller.rb -rwxr-xr-x 1 lance staff 2153 Act 10 18:01 people_controller.rb
Затем я внес изменения и сохранил файл:
merced:controllers lance$ ls -l people_controller.rb [email protected] 1 lance staff 2163 Oct 11 12:03 people_controller.rb
Так что это не проблема с mtimes.