Just do IT

思うは招く

Rubyでファイルを取得する際の require_relative 使い方

require_relativeでファイルを読み込む場合

自分のファイルが存在するディレクトリがパスの起点になる。

.
├── bar
│   └── ruby.rb
└── foo
    └── test.rb

ruby.rbからfooにあるtest.rbを取得する場合は

require_relative '../foo/test'

となる。 つまり、bar/ruby.rbから見た相対パスfoo/test.rbを読み込む。

../で「ひとつ上のディレクトリ」という意味になる。

../foo/testは、「ひとつ上の階層のディレクトリ/fooディレクトリ/test.rbファイル」を意味している。文末の.rbは省略できる。

同じディレクトリ内にあるファイルを取得する場合

fooディレクトリ内にあるoniku.rbtest.rbから読み込みたい場合。

.
├── bar
│   └── ruby.rb
└── foo
    ├── oniku.rb
    └── test.rb

require_relativeを使うと、以下の方法で書くことができる。

require_relative 'oniku'
require_relative './oniku'

./は「カレントディレクトリ」を意味する。

※requireの場合はRubyを実行しているディレクトリがパスの起点になる。