Это продолжение question. Во время разработки я должен перезапустить приложение rails каждый раз, когда я меняю код в lib/, чтобы изменения кода вступили в силу. Как получить этот код для автоматической перезагрузки, например, контроллеров, моделей и т.д.
Как сделать код в lib/автоматически перезагружать при изменении файла?
Ответ 1
Для Rails 3, измените инструкции, приведенные в статье, из ответа @science. В файле environments/development.rb
добавьте строки:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder'
Конечно, замените имя своего модуля на MyModuleInLibFolder
.
Ответ 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
почему бы просто не ввести
load Rails.root + '/lib/your_lib.rb'