Ответ 1
Используйте Pathname#relative_path_from
:
require 'pathname'
first = Pathname.new '/first/path'
second = Pathname.new '/second/path'
relative = second.relative_path_from first
# ../../second/path
first + relative
# /second/path
Скажем, я знаю абсолютный путь, из которого я начинаю, и абсолютный путь, к которому я пытаюсь добраться:
first = '/first/path'
second = '/second/path'
Теперь я хочу выяснить, как построить путь, относящийся к первому. Например:
# answer should be /first/path/../../second/path
path = second.get_path_relative_to(first)
Как я могу это сделать в Ruby?
Используйте Pathname#relative_path_from
:
require 'pathname'
first = Pathname.new '/first/path'
second = Pathname.new '/second/path'
relative = second.relative_path_from first
# ../../second/path
first + relative
# /second/path