模块内部的ruby模块

0xS*_*ina 3 ruby module

我有一个ruby模块,其中包含许多其他模块.这是一个简单的例子:

module Foo

  module Bar
  end

  module Baz
  end

end
Run Code Online (Sandbox Code Playgroud)

除了,我在Foo模块里面有6-7个模块.有没有办法可以将Bar/Baz放在单独的文件中,但仍然可以获得相同的行为?现在我的所有代码都在1个文件中,非常无组织.

Rus*_*ell 13

您可以像这样定义它们,每个都在一个单独的文件中:

# foo.rb
module Foo
end

# foo_bar.rb
module Foo::Bar
end

# foo_baz.rb
module Foo::Baz
end
Run Code Online (Sandbox Code Playgroud)

NB.能够定义Foo模块之前,您需要定义模块,例如Foo::Bar使用此表示法.

或者你可以把它们放在他们当前所处格式的不同命名文件中,它仍然可以工作:

# foo_bar.rb
module Foo
  module Bar
  end
end

# foo_baz.rb
module Foo
  module Baz
  end
end
Run Code Online (Sandbox Code Playgroud)