在 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 之类的东西来导入这种行为,还是让我们自己实现?