Принудительная перезагрузка! из каталога lib в консоли rails 3.2

У меня есть простой класс в файле lib/simple.rb.

В консоли (rails c) у меня есть пара проблем:

  1. Rails не может загрузить файл, хотя application.rb содержит config.autoload_paths += %W(#{config.root}/lib/**). Как заставить Rails 3.2 вести себя как Rails 2.x (у меня никогда не было проблем с этой автозагрузкой в ​​Rails 2.x — Rails 3 кажется шагом назад :( )

  2. Если я внесу изменения в simple.rb и вызову reload! в консоли, он не перезагрузит файл. Я должен сделать load "#{Rails.root}/lib/simple.rb, чтобы он перезагрузился. Есть ли способ заставить reload! работать так, как это было в Rails 2.x? то есть просто перезагрузить все файлы, вообще не используя load?


person Zabba    schedule 22.09.2012    source источник


Ответы (1)


Это должна быть папка, содержащая класс, который вы хотите загрузить. Следовательно, должно быть

config.autoload_paths += %W(#{config.root}/lib)

Если ваше приложение threadsafe!, измените config.autoload_paths на config.eager_load_paths. Как только вы это сделаете, reload! должно вести себя так, как вы описали.

person axsuul    schedule 30.09.2012