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

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

Наверняка я собираюсь об этом ошибаться....?

Лучший

РЕДАКТИРОВАТЬ 1

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

3 ответа

Для Rails 3 и Rails 4.0 измените инструкции, приведенные в ответе @txwikinger. В вашем файле environment /development.rb добавьте строки:

ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << '<my modules in lib>'
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

Есть более простой способ: просто добавьте

config.reload_plugins = true

в развитие.rb

Другие вопросы по тегам