別のディレクトリから Ruby ファイルを要求する方法

概要

Rubyファイルを別のファイルに要求したい。これら 2 つのファイルは 2 つの異なるディレクトリにあります。最初のファイルの先頭に require Second_file があります。 Ruby はそのようなファイルをロードできないと言います。ディレクトリが違うからでしょうか? 2番目のファイルへのフルパスを書き込もうとしましたが、それでもファイルを読み込むことができません。

2 番目のファイルを最初のファイルにロードするにはどうすればよいですか?

解決策

require は、「ロード パス」と呼ばれる一連の場所でのみファイルを検索します。スクリプトまたは IRB セッションでグローバル変数を使用すると、ロード パスを表示できます。ロード パスにない場合は見つかりません。

Ruby 1.9 では、現在のファイルの場所を開始点として使用して検索する require_relative が導入されました。

# Will search $LOAD_PATH for file. 
require 'test/unit'
# Notice the '/' which tells it to look in the 
# 'test' folder for a file named 'unit.rb'

# Will look in current folder of file
require_relative 'my_folder/my_file'
# Will search in 'my_folder' for the file 'my_file.rb'

require_relative は irb では機能しないことに注意してください。

また、本当に require を使用したい場合は、変数に場所を追加することでスクリプトを開始できることにも注意してください。

$LOAD_PATH << File.join('users', 'yourusername', 'your_folder')
# or
$LOAD_PATH << File.dirname(__FILE__)
# The second one enables you to move the file around on your
# system and still operate correctly
require 'my_file'

Ruby-Doc の追加ドキュメントは次のとおりです。