gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:59 25 4
gpt4 key购买 nike

我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com