Ruby, смешивающийся, дает неопознанную постоянную ошибку

В irb я делаю это

class Text
  include FileUtils
end

Я добираюсь: NameError: неинициализированный постоянный Тест:: FileUtils

Если я просто делаю: включайте FileUtils (т.е. теперь класс), все работает.

Что дает?

8
задан Bilal and Olga 14 March 2010 в 00:54
поделиться

2 ответа

Вам нужно убедиться, что Ruby знает о модуле FileUtils. Этот модуль не загружен по умолчанию:

>> FileUtils
NameError: uninitialized constant FileUtils
    from (irb):1
>> require 'fileutils'
=> true
>> FileUtils
=> FileUtils

Не беспокойтесь об ошибке NameError: неинициализированная константа Text :: FileUtils - когда вы пытаетесь включить константу, о которой Ruby не знает , это выглядит в нескольких местах. В вашем случае сначала он будет искать Text :: FileUtils , а затем он будет искать :: FileUtils в корневом пространстве имен. Если он нигде не может найти его (что в вашем случае не удалось), тогда в сообщении об ошибке будет указано первое место, где он искал.

17
ответ дан 5 December 2019 в 08:51
поделиться

Вы пробовали?

class Text
  include ::FileUtils
end

Предполагается, что FileUtils находится вне модуля.

1
ответ дан 5 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

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