在我的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__))

或者你可以 Select 两个方向之间的相对路径.

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

Ruby相关问答推荐

如何使用Ruby range?

ASDF 上缺少 Ruby 版本

如何在 Ruby 中创建可调用属性

如何使用正则表达式在字符串中查找特定匹配项

为什么安全导航比在 Rails 中使用 try 更好?

如何使用 Ruby 删除字符串中某个字符后的子字符串?

如何拯救 Ruby 中的 eval?

Ruby 对象打印为指针

Ruby 中的关联数组

对于基于 GitHub 的 gem,强制Bundle 安装使用 https:// 而不是 git://

无法将 RVM 安装的 Ruby 与 sudo 一起使用

如何在Ruby中对数组中对象的属性求和

你能在 Python 的核心类型上修改补丁方法吗?

ruby module_function 与包含模块

Ruby 将 CSV 文件读取为 UTF-8 和/或将 ASCII-8Bit 编码转换为 UTF-8

如何使用 Ruby 运行命令五次?

如何计算Ruby日期的星期几?

Ruby on Rails switch

Rubocop 25 线块大小和 RSpec 测试

查找模块中可用的类