在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