在Rails可以app/foo/bar.rb
下創建一個模型包含模塊,包含bar.rb:自動創建一個類
class Foo::Bar
def some_method
puts "I work fine"
end
end
如果試圖這樣做在一個純Ruby應用程序,你會得到一個NameError: uninitialized constant Foo
除非你已經初始化一個模塊Foo
。
什麼是Rails這樣做,允許它創建類,而無需首先初始化其包含模塊?是否有可能通過諸如activesupport之類的東西來導入此行爲,還是我們要自行實施?
以下是我所做的: 在您的gem文件中:'gem'activesupport',:require =>'active_support/dependencies''然後在您的代碼中,只需添加您的文件夾: '['app/models ','app/controllers','app/helpers']。each {| f | ActiveSupport :: Dependencies.autoload_paths << File.expand_path(f)}' – kjb 2013-03-18 01:18:46