Ruby でディレクトリ名を連結して相対パスを得たい時は Pathname より File.join を使った方がよい

Rubyディレクトリ名を連結したい場合によく使われるクラスに Pathname がある。

require 'pathname'

Pathname('a').join('b') # => "a/b"
Pathname('a')+'b'       # => "a/b"
Pathname('a')/'b'       # => "a/b"

この Pathname インスタンスは、'/' で始まる文字列を連結すると、絶対パスと解釈し、それまでのパスを無視してしまう。

require 'pathname'

Pathname('a').join('/b') # => "/b"
Pathname('a')+'/b'       # => "/b"
Pathname('a')/'/b'       # => "/b"

ちなみにリファレンスでは、+ と / の方には 「other が絶対パスなら単に other と同じ内容の Pathname オブジェクトが返されます。」と書かれている (参照) が、 join の方には「与えられたパス名を連結します」程度しか書かれいていない。(参照)
うっかり '/' で始まる文字列を渡して絶対パスになるのを防ぎたい場合は、File.join を使うとよい。

File.join('a','/b').to_s # => "a/b"