(Rails) Перезагрузка файлов "lib" без перезапуска сервера...?
Есть ли какой-либо путь в Rails, чтобы перезагрузить "lib" файлы ENV без перезагрузки сервера? Я работаю с некоторыми классами, которые у меня есть внутри модуля в lib. Однако, чтобы увидеть мои изменения, я должен перезапустить сервер каждый раз. Я предполагаю, что именно так работает Rails, но это довольно утомительно при разработке файлов библиотек и/или плагинов.
Конечно, я собираюсь сделать это неправильно....?
Лучшие
EDIT 1
Ни один ответ 1, ни 2 не работали для меня. Вместо этого мне предъявили ошибки от контроллеров, которые использовали модуль. FYI, у меня есть 3 файла в моем каталоге "lib/xmlitems". Я попытался загрузить этот подкаталог, тогда я ссылался на единственный файл, который "требует" всех других файлов. Могу ли я индивидуально загружать все файлы?
Ответы
Ответ 1
Для Rails 3 и Rails 4.0 измените инструкции, приведенные в ответе @txwikinger. В файле среды /development.rb добавьте строки:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << '<my modules in lib>'
Ответ 2
module ActsAsReloadable
def self.included(base)
ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
end
end
Чтобы использовать его, просто include ActsAsReloadable
в ваших файлах lib/* и добавьте config.autoload_paths += %W(#{config.root}/lib)
в config/application.rb
Ответ 3
Там проще: просто добавьте
config.reload_plugins = true
to development.rb