Ruby:如何从当前工作目录"需要"一个文件?

Mat*_*rts 17 ruby require

如何从当前文件夹中获取文件?

我有一个名为sql_parser.rb包含类的文件.我想将它包含在同一个文件夹中的另一个文件中,所以我使用了:

require 'sql_parser'
Run Code Online (Sandbox Code Playgroud)

当我从该文件夹运行时失败:

LoadError: no such file to load -- sql_parser
Run Code Online (Sandbox Code Playgroud)

我尝试在存在此文件的文件夹中使用IRB并从那里要求它,但是遇到了同样的问题.

tho*_*ron 30

在ruby 1.9.x中,您可以使用该方法require_relative.见http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-require_relative.


And*_*imm 8

使用

$:.unshift File.join(File.dirname(__FILE__))
Run Code Online (Sandbox Code Playgroud)

确保您根据脚本所在的位置获取路径,而不是从程序执行的位置获取路径.否则,您将丢弃"."从加载路径中删除所获得的安全性好处.

(是的,问题的标题是关于要求运行脚本的目录中的文件,但问题正文提到所需文件与相关脚本位于同一文件夹中)