ruby-on-rails - Rails 不从 lib 加载我的模块

标签 ruby-on-rails ruby ruby-on-rails-3 module

我的 Rails 3.2 应用程序的 lib 文件夹中有一堆自定义类:即扩展 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)

我的其他自定义类已加载但未加载模块。

我读到 ( Best way to load module/class from lib folder in Rails 3? ) 我应该在模块中定义一个类,以便 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")

关于ruby-on-rails - Rails 不从 lib 加载我的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202690/

相关文章:

css - 如何添加背景图像内联样式以链接标签 Rails

ruby-on-rails - Jasmine Rice on Rails 4

javascript - 使用 Rails 3 和 jQuery 进行动态选择

ruby-on-rails - 渲染 :partial with :layout don't work in view

ruby - 如何截断哈希中的数据以使生成的 JSON 不超过 n 个字节?

ruby-on-rails-3 - Rails 如何知道何时从 `sessions` 表中删除记录?

ruby-on-rails - rails 中的单元测试 - 带回形针的模型

ruby-on-rails - 如何从精炼厂主页中删除页面标题 [RAILS]

ruby-on-rails - Rails 中 RESTful 路由的更新操作(PATCH 或 PUT)

安装 ri 文档时 Ruby gem 失败