Rubyのrequire、load、require_relativeの違い
from Rubyのコードの書き方を学ぶ
Kernel.#require
組み込みライブラリ以外のライブラリを読み込む
読み込むのは1回だけ(既に読み込んでいる場合はエラー)
相対パスで指定した場合は、実行時のカレントディレクトリからの相対パスで参照する
Kernel.#load
require との違いは、実行する度に読み込むこと
Kernel.#require は同じファイルは一度だけしかロードしませんが、 Kernel.#load は無条件にロードします。
また、require は拡張子.rb や .so を自動的に補完しますが、 load は行いません。 require はライブラリのロード、load は設定ファイルの読み込みなどに使うのが典型的な用途です。
Kernel.#require_relative
現在のファイルからの相対パスで require する
require_relativeは、requrie や load と違って、カレントディレクトリによる影響を受けない
参考URL
require './file'とrequire_relative 'file'の違い - @znz blog
#Rubyを学ぶ