Подтвердить что ты не робот

(Rails) Перезагрузка файлов "lib" без перезапуска сервера...?

Есть ли какой-либо путь в Rails, чтобы перезагрузить "lib" файлы ENV без перезагрузки сервера? Я работаю с некоторыми классами, которые у меня есть внутри модуля в lib. Однако, чтобы увидеть мои изменения, я должен перезапустить сервер каждый раз. Я предполагаю, что именно так работает Rails, но это довольно утомительно при разработке файлов библиотек и/или плагинов.

Конечно, я собираюсь сделать это неправильно....?

Лучшие

EDIT 1

Ни один ответ 1, ни 2 не работали для меня. Вместо этого мне предъявили ошибки от контроллеров, которые использовали модуль. FYI, у меня есть 3 файла в моем каталоге "lib/xmlitems". Я попытался загрузить этот подкаталог, тогда я ссылался на единственный файл, который "требует" всех других файлов. Могу ли я индивидуально загружать все файлы?

4b9b3361

Ответ 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