5

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

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

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

4

3 回答 3

3

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

require_dependency将做几乎需要做的事情,但将自动加载系统保持在循环中,以便加载的常量将在请求结束时卸载。您可能需要确保文件位于 rails 的自动加载路径中

于 2012-05-20T15:36:32.477 回答
3

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

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

那么你不应该需要它们。你试过这个吗?

于 2012-05-20T14:48:28.373 回答
0

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

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

到 config/application.rb 中的 Application 类

于 2012-05-24T10:08:23.213 回答