我看到了为Rails 3提供的各种解决方案,但是对于Rails 4.2,当我在开发中进行更改时如何在不重新启动服务器的情况下让Rails重新加载文件/lib/my_stuff.rb?
这是/ lib中唯一需要在更改后重新加载的文件,它是一个正在开发的复杂模块,因此,每次小的更改后重新启动服务器都不适合开发。
# /lib/my_stuff.rb
module MyStuff
def self.method1
end
end
# /config/initializers/my_stuff.rb
require 'my_stuff.rb'
我在config / environments / development.rb中尝试过:
ActiveSupport :: Dependencies.autoload_paths << File :: join(Rails.root,'lib') ActiveSupport :: Dependencies.explicitly_unloadable_constants <<'MyStuff'
它似乎可以正常工作,但是在重新加载一两次后,会出现错误:
Unable to autoload constant MyStuff,
expected /my_app/lib/my_stuff.rb to define it.
(它之所以说是my_app,是因为我在Docker下运行,其中my_app是一个指向“。”的卷。)