强制重新加载自动加载的库文件所需的库文件

时间:2012-05-18 11:50:01

标签: ruby-on-rails ruby-on-rails-3

Rails 3.2.3 。我的自动加载路径中有一个带有/lib的Rails应用程序。我的一个库文件需要一堆像这样的文件

Dir[Rails.root.join("lib/foo/*.rb")].each { |f| require f }

在开发过程中,如果我更改这些文件,则不会重新加载。例如,如果我修改/lib/foo/bar.rb,我将不得不重新启动服务器以查看这些更改。任何人都可以提出一种方法,以便在每次请求时都能正确重新加载吗?

3 个答案:

答案 0 :(得分:3)

如果您的自动加载路径中包含这些文件:

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

然后你不需要他们。你试过this吗?

答案 1 :(得分:3)

require与rails的自动加载系统不能很好地配合。

require_dependency将完成许多要求,但将循环系统保留在循环中,以便加载的常量将在请求结束时卸载。您可能需要确保文件位于rails的自动加载路径

答案 2 :(得分:0)

您必须添加或取消注释该行。

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

到config / application.rb中的Application类