在我的Ruby项目中,我使用了诸如在多个远程盒子上移动和编辑文件之类的杂乱无章的东西,而我确实确实需要诸如指向根项目目录的相对路径之类的东西。我有许多处理文件夹,这些文件夹用于许多方法。

现在,我已经对路径进行了硬编码,但这使我不满意。

最佳答案

您可以使用此获取当前目录(当前文件的目录)

File.dirname(__FILE__)

然后,您可以使用相对于根的相对路径来加入它
File.join(File.dirname(__FILE__), '../../') # add proper number of ..

或者,您可以使用expand_path将相对路径转换为绝对路径。
ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', File.dirname(__FILE__))

或者,您可以计算两个Dirs之间的相对路径。
require 'pathname';
puts Pathname.new('/').relative_path_from(Pathname.new('/some/child/dir/')).to_s
# => ../../..

关于ruby - 项目目录的相对路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9416578/

10-13 02:15