从父目录加载文件

zul*_*ain 8 ruby require ruby-1.8

我正在使用Ruby 1.8,我有要调用的脚本,但它在父文件夹中.以下是结构:

maindir/
neededscript.rb
  subdir/
    subdir2/
      myscript.rb
Run Code Online (Sandbox Code Playgroud)

我怎么neededscript.rb能从里面要求myscript.rb

ful*_*ked 6

在Ruby> = 1.9中,您可以使用该require_relative方法

require_relative通过允许您加载与包含require_relative语句的文件相关的文件来补充内置方法require.

require_relative '../../neededscript.rb'
Run Code Online (Sandbox Code Playgroud)


set*_*thi 6

您还可以通过在执行require之前将这些行添加到myscript.rb来添加ruby libs路径的路径

binpath = File.dirname( __FILE__ )
$:.unshift File.expand_path( File.join( binpath, ".." ) )
Run Code Online (Sandbox Code Playgroud)


zul*_*ain 5

这就是我所做的事情:

File.expand_path("../../neededsript.rb",File.dirname(__FILE__))
Run Code Online (Sandbox Code Playgroud)