从lib文件夹加载文件的最佳方法是什么,这些文件将方法添加到Rails 3中的~existing~类?

我正在以与此相关问题非常相似的方式使用config.autoload_paths来从Rails 3项目中的lib目录加载类。

具体来说,我已将这些行添加到config / application.rb文件中:

 config.autoload_paths += %W(#{config.root}/lib) config.autoload_paths += Dir["#{config.root}/lib/**/"] 

但是,对于现有类,此方法对我不起作用。 当我添加像lib / extensions / string.rb这样的文件时:

 class String def foo puts "foo" end end 

我得到一个undefined method 'foo' for "":String错误。 通过各种搜索,我已经意识到这个问题与延迟加载这些文件有关。 我尝试使用config.eager_load_paths但无法使用它。

我正在完成您在我的应用程序中描述的内容,唯一的区别是我还有一个名为extensions.rb的初始化程序 ,其代码如下:

 Dir.glob('lib/extensions/*').each { |f| require f }