从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 }