Rails不会从lib加载我的模块

我在lib文件夹中的Rails 3.2应用程序中有一堆自定义类:即扩展ActiveRecord等。一切正常。

但是,我正在尝试向FileUtils添加一些自定义方法,即

module FileUtils def last_modified_file(path='.') # blah ... end end 

我把它放在lib / file_utils.rb中我的application.rb我有

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

我的其他自定义分类是加载但不是模块。

我读过( 在Rails 3中从lib文件夹加载模块/类的最佳方法? )我应该在模块内部定义一个类,以便Rails根据FileUtils.class来获取它 – 它应该是Object <BasicObject 。

所以我试过了

 module FileUtils class Object def last_modified_file(path='.') # blah ... end end end 

但这也不起作用。

然而,当我启动irb并只是粘贴我的代码,它有效地将我的新代码放入对象并重新包含我的模块 – 它工作正常。

我在这里失踪了?

永远不会加载您的补丁,因为只有在Rails找不到常量时才会调用自动加载。 由于FileUtils常量已经存在,因此永远不会调用自动加载器,并且永远不会加载您的文件。

只需从初始化程序中获取它。

 require File.join(Rails.root, "lib/file_utils.rb")