This is a follow up to this question. During development I have to restart the rails app everytime I change the code in lib/ in order for the code changes to take effect. Ho
If you already did the previous approaches but doesn't works (like my case), try with config.reload_classes_only_on_change
in development.rb
.
Rails 4.2 here ✋
module ActsAsReloadable
def self.included(base)
ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
end
end
To use it, simply include ActsAsReloadable
in your lib/* files and add config.autoload_paths += %W(#{config.root}/lib)
in config/application.rb
For Rails 3, vary the instructions given in the article from @science's answer. In your environments/development.rb
file, add the lines:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder'
Of course, substitute the name of your module for MyModuleInLibFolder
.
why not just enter
load Rails.root + '/lib/your_lib.rb'