Подсказка № 1. Лучше писать без .
Это зависит от каталога, из которого вы запускаете приложение.
Например, у вас есть каталог папка .И там у вас есть два файла:
file.rb
puts "I'm file.rb"
main.rb
require './file.rb'
Есливы запускаете свое приложение из папки - все в порядке:
folder$ ruby main.rb
I'm file.rb
Но если вы запустите его с высокого уровня - это будет ошибка:
folder$ cd ..
:~$ ruby folder/main.rb
kernel_require.rb:55:in `require': cannot load such file -- ./file.rb (LoadError)
Но как писать в этом случае?
Подсказка № 2. Можно использовать специальный метод
main.rb
require "./#{__dir__}/file.rb"
Теперь все нормально во всех случаях:
~$ ruby folder/main.rb
I'm file.rb
folder$ ruby main.rb
I'm file.rb
Но вы можете написать это лучше.
Подсказка # 3. Вы можетеиспользуйте require_relative
main.rb
require_relative 'file.rb'
И даже лучше.
main.rb
require_relative 'file'
Руби понимает это.
~$ ruby folder/main.rb
I'm file.rb
folder$ ruby main.rb
I'm file.rb
Надеюсь, это поможет вам.