更改代码时,Rails 4.2如何在开发中的/lib/my_stuff.rb中自动重新加载模块MyStuff

时间:2019-03-15 10:03:33

标签: ruby-on-rails autoload

我看到了为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是一个指向“。”的卷。)

0 个答案:

没有答案