2
我有一个红宝石模块,其中包含许多其他模块。这里有一个简单的例子:模块内的红宝石模块
module Foo
module Bar
end
module Baz
end
end
除了,我喜欢6-7模块里面的Foo模块。有没有一种方法可以将Bar/Baz放在单独的文件中,但仍然可以获得相同的行为?现在我的所有代码都在1个文件中,非常无组织。
我有一个红宝石模块,其中包含许多其他模块。这里有一个简单的例子:模块内的红宝石模块
module Foo
module Bar
end
module Baz
end
end
除了,我喜欢6-7模块里面的Foo模块。有没有一种方法可以将Bar/Baz放在单独的文件中,但仍然可以获得相同的行为?现在我的所有代码都在1个文件中,非常无组织。
可以定义他们这样,在每一个单独的文件:
# foo.rb
module Foo
end
# foo_bar.rb
module Foo::Bar
end
# foo_baz.rb
module Foo::Baz
end
NB。您需要定义Foo
模块,然后能够使用此表示法定义模块,如Foo::Bar
。
或者你可以把他们在不同命名的文件中,他们目前是在格式,它应该仍然工作:
# foo_bar.rb
module Foo
module Bar
end
end
# foo_baz.rb
module Foo
module Baz
end
end
啊,真棒!谢谢。 – 0xSina 2012-02-20 12:46:57
没问题!乐意效劳。 – Russell 2012-02-20 12:48:15
@Pragma一次注意,如果你已经使用'module Foo'定义了'Foo',那么你只能使用'module Foo :: Bar',否则你会得到一个错误。 – matt 2012-02-20 13:14:34