В 99% всех случаев, когда компьютер говорит вам, что он не может найти вещь, это происходит потому, что ее там нет.Итак, первое, что вам нужно проверить, это то, действительно ли является файлом с именем TestClass.rb
где-то в вашей файловой системе.
В 99% остальных случаи, компьютер ищет не в том месте.(Ну, на самом деле, компьютер обычно ищет в нужном месте, но то, что он ищет, находится не в том месте).require
загружает файл из $LOAD_PATH
, поэтому вы должны убедиться, что каталог, в котором находится файл TestClass.rb
, на самом деле - это на $LOAD_PATH
.
В качестве альтернативы, если вы не хотите require
файл из $LOAD_PATH
, а скорее относительно позиции файла, который делает require
ing, тогда вам нужно использовать require_relative
.
Обратите внимание, однако, что ваш код все равно не будет работать, поскольку say_hello
является экземпляром метода экземпляров класса TestClass
, но вы вызываете его для объекта main
, которыйэкземпляр Object
, а не TestClass
.
Обратите также внимание, что стандартными соглашениями об именах файлов Ruby являются snake_case
, в частности, версия snake_case
основного класса / модуля файла.Итак, в вашем случае файл должен называться test_class.rb
.Кроме того, require
и require_relative
определят правильное расширение файла для себя, поэтому вам следует пропустить .rb
.И в-третьих, стандартный стиль кодирования Ruby - это два пробела для отступа, а не четыре.
Ничто из этого не приведет к тому, что ваш код не будет работать, конечно, поскольку он чисто стилистический, но он может люди могут не захотеть отвечать на ваши вопросы, поскольку это показывает, что вы недостаточно уважаете их сообщество, чтобы выучить даже самые простые правила.