Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】require_relative()関数の使い方

require_relative関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

require_relative関数は、現在のスクリプトファイルからの相対パスに基づいて、別のRubyファイルを読み込み、その中に記述されたコードを実行する関数です。この関数を使用することで、大規模なアプリケーション開発において、コードを複数のファイルに効果的に分割し、整理して管理することが可能になります。これにより、一つの巨大なファイルにすべてのコードを記述するのではなく、機能ごとにファイルを分け、それぞれを独立した「部品」として扱うことができるため、プロジェクト全体の可読性や保守性が大きく向上します。

例えば、メインのプログラムファイルがmain.rbという名前で存在し、そのファイルと同じディレクトリ内にヘルパー関数を定義したhelper.rbや、特定のクラスを定義したmy_class.rbといったファイルがある場合を考えます。main.rbからhelper.rbを読み込むには、単にrequire_relative 'helper'と記述するだけで、呼び出し元のmain.rbが存在するディレクトリを基準としてhelper.rbが探し出され、読み込まれます。サブディレクトリにあるファイルであれば、require_relative 'sub_dir/another_file'のように、通常の相対パス表記で指定できます。

このrequire_relative関数とよく比較されるrequire関数との主要な違いは、ファイルを検索する際の基準です。requireがRubyの環境変数であるロードパス($LOAD_PATH)に登録されたディレクトリの中からファイルを検索するのに対し、require_relativeはあくまで呼び出し元のスクリプトファイルが存在するディレクトリを起点として、指定された相対パスでファイルを探索します。この特性により、外部ライブラリの読み込みにはrequireを、自身のプロジェクト内で作成した関連ファイルの読み込みにはrequire_relativeを使い分けることで、より意図が明確で堅牢なコードを記述することができます。

require_relativeによって一度読み込まれたファイルは、それ以降に同じファイルをrequire_relativeで再度指定しても、Rubyの内部的な仕組みにより二重に読み込まれることはありません。これは、コードの重複実行や、同じ定義が複数回行われることによる潜在的な問題を防ぐために重要です。もし指定された相対パスにファイルが見つからなかった場合は、LoadErrorというエラーが発生し、プログラムの実行は中断されますので、パスの指定には細心の注意が必要です。

構文(syntax)

1require_relative 'relative_path_to_file'

引数(parameters)

path

  • path: 読み込むファイルへの相対パスを表す文字列

戻り値(return)

true または false

指定されたファイルを読み込み、その内容を現在のプログラムに組み込みます。ファイルの読み込みに成功した場合は true を、失敗した場合は false を返します。

関連コンテンツ

関連プログラミング言語