从 lib 文件夹加载向 Rails 3 中的 ~现有~ 类添加方法的文件的最佳方法是什么?

2024-03-15

我在用config.autoload_paths以与此非常相似的方式相关问题 https://stackoverflow.com/questions/3356742/best-way-to-load-module-class-from-lib-folder-in-rails-3从 Rails 3 项目的 lib 目录加载类。

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

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

但是,这种方法对我来说不起作用existing类。当我添加像 lib/extensions/string.rb 这样的文件时:

class String
  def foo
    puts "foo"
  end
end

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


我正在做exactly你在我的申请中描述的内容,唯一的区别是我also有一个名为的初始化程序扩展名.rb使用以下代码:

Dir.glob('lib/extensions/*').each { |f| require f }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 lib 文件夹加载向 Rails 3 中的 ~现有~ 类添加方法的文件的最佳方法是什么? 的相关文章

随机推荐