3
我使用config.autoload_paths
的方式非常類似於這個related question從Rails 3項目中的lib目錄加載類。從lib文件夾中加載文件的最佳方法是在Rails 3中爲〜existing〜類添加方法?
具體來說,我已經添加了這些行到config/application.rb中的文件:
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
但是,這種方法是不工作對我來說現有類。當我添加一個文件一樣的lib /擴展/ string.rb:
class String
def foo
puts "foo"
end
end
我得到一個undefined method 'foo' for "":String
錯誤。通過各種搜索,我發現這個問題與這些文件的延遲加載有關。我嘗試使用config.eager_load_paths
,但無法讓它工作。
這初始化方法適用於我。但是,我不得不稍微改變它爲:'Dir.glob(「#{Rails.root}/lib/extensions/*」)。要求f}'你同意嗎? – Rick 2011-04-30 23:20:06
此外,還有一個很好的自動加載示例和需要在[博客文章]中引用另一個問題的示例(http://ablogaboutcode.com/2011/01/17/ruby-autoloading-explained/) – Rick 2011-04-30 23:24:57
使用完整路徑可能會更好,但我的應用程序不需要它。不知道爲什麼會這樣。 – 2011-05-01 01:38:25