Перезагружатель кода отключен по умолчанию на производстве. Поэтому, если вы вызываете require_dependency вверху файла, он будет выполнен только один раз.
Упомянутое вами изменение в Rails 3 действительно мало. Обычно вы можете позвонить на Foo
, и он будет автоматически загружен с app/models/foo.rb
. Прежде чем он также может быть загружен из lib/foo.rb
. (Эти каталоги app/models
и lib
называются путями автозагрузки .) Команда Rails решила удалить lib из путей автозагрузки в 3-й версии. Вы все еще можете положить его обратно. Но рекомендуется оставлять в lib менее часто изменяемые и специфичные для проекта файлы. Если у вас есть что-то, что не принадлежит ни к одному из подкаталогов приложений по умолчанию, таких как app / models или app / controllers, вам не нужно помещать это в lib. Вы можете добавить свой собственный подкаталог. У меня app/presenters
, например. Существует обсуждение на старом трекере, если вы хотите больше информации об этом.