我正在做一个项目,我有一个动态确定的挂载点,并提供了一组绝对路径来处理目标卷。由于这些文件还不存在,我使用 Pathname 类来处理文件名操作。然而,在连接具有相同根的路径时,Pathname 似乎做了一些聪明的事情。我观察到以下行为:
p1 = Pathname.new('/foo/bar') # #<Pathname:/foo/bar>
p2 = Pathname.new('/baz/quux') # #<Pathname:/baz/quux>
p3 = p1 + p2 # #<Pathname:/baz/quux>
p4 = p1.join p2.relative_path_from(Pathname.new('/')) # #<Pathname:/foo/bar/baz/quux>
p5 = Pathname.new(p1.to_s.concat p2) # #<Pathname:/foo/bar/baz/quux>
所以使用 p4 和 p5,我能够得到我想要的行为,但是结构有点做作。有没有更清洁的方法来做到这一点?