Подтвердить что ты не робот

Относительный путь к вашей директории проекта

В моем проекте Ruby я использую беспорядок таких вещей, как перемещение и редактирование файлов на нескольких удаленных ящиках, и мне действительно нужно что-то вроде относительного пути к моему корневому каталогу проектов. У меня много каталогов, которые используются во многих методах.

Сейчас у меня есть жесткие жесты, но это делает меня несчастным.

4b9b3361

Ответ 1

Вы можете получить текущий каталог (каталог текущего файла) с помощью этого

File.dirname(__FILE__)

Затем вы можете присоединиться к нему с относительным путем к корневому

File.join(File.dirname(__FILE__), '../../') # add proper number of ..

Или вы можете использовать expand_path для преобразования относительного пути в абсолютный.

ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', File.dirname(__FILE__))

Или вы можете рассчитать относительный путь между двумя каталогами.

require 'pathname'; 
puts Pathname.new('/').relative_path_from(Pathname.new('/some/child/dir/')).to_s
# => ../../..

Ответ 2

__dir__

С Ruby 2 вы можете просто использовать Kernel-функцию :__dir__, чтобы получить абсолютный путь к каталогу текущего файла. Итак, чтобы привести пример, вы можете установить константу ROOT_DIR в начале вашего проекта в (config.rb, environment.rb, constants.rb или что бы вы там ни называли).

См. Ruby Documentation