В режиме разработки классы перезагружаются при каждом запросе, теряя любое состояние класса, которое вы, возможно, вставили в них. Это можно изменить, посмотрев эту строку в файле development.rb:
config.cache_classes = false
и изменив его на true
, как это обычно устанавливается в production.rb. Причиной установки этого параметра на false
является удобство: вы можете отредактировать свой код и нажать «Обновить», чтобы увидеть изменения, не перезагружая сервер.
Но в Rails не принято помещать состояние в классы и ожидать, что оно останется между запросами, потому что виртуальные машины приходят и уходят, а виртуальные машины с резьбой могут не обращаться к состоянию класса поточно-ориентированным способом. Для этих проблем есть обходные пути, но обычно есть лучший способ сделать то, что вы делаете.