如何在命名空间类中包含模块?

时间:2010-03-26 16:52:21

标签: ruby

我在命名空间类中包含模块时遇到问题。以下示例将引发错误uninitialized constant Bar::Foo::Baz (NameError)。我在这里缺少什么基本的Ruby知识?

module Foo
  module Baz
    def hello
      puts 'hello'
    end
  end
end

module Bar
  class Foo
    include Foo::Baz
  end
end

foo = Bar::Foo.new

2 个答案:

答案 0 :(得分:7)

使用::强制查找仅限顶级:

module Bar
  class Foo
    include ::Foo::Baz
  end
end

答案 1 :(得分:0)

include ::Foo::Baz