Как включить модуль в класс пространства имен? - PullRequest
6 голосов
/ 26 марта 2010

У меня проблемы с включением модуля в пространство имен. В приведенном ниже примере выдается ошибка 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 ]

7 голосов
/ 26 марта 2010

Используйте :: для принудительного поиска только на верхнем уровне:

module Bar
  class Foo
    include ::Foo::Baz
  end
end
0 голосов
/ 26 марта 2010

include ::Foo::Baz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...