Как я включаю модуль в namespaced класс?

Я испытываю затруднения включая модуль в namespaced классе. Пример ниже бросает ошибку 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
6
задан Hakan Ensari 26 March 2010 в 16:52
поделиться

2 ответа

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

module Bar
  class Foo
    include ::Foo::Baz
  end
end
7
ответ дан 17 December 2019 в 00:07
поделиться

include :: Foo :: Baz

0
ответ дан 17 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: