ruby中的unshift + file.join

时间:2009-09-08 18:53:17

标签: ruby file

$:.unshift File.join(File.dirname(__FILE__),\
'vendor','addressable-2.1.0','lib','addressable','uri')

上面的代码是否访问具有此路径的文件:

'vendor/addressable-2.1.0/lib/addressable/uri'

我正在尝试将可寻址的gem提供给Sinatra应用程序以将其部署到我的托管服务提供商,但我一直在接收:

"no such file to load -- addressable/uri"
将“unshift”行放入config.ru

2 个答案:

答案 0 :(得分:3)

上面的代码将路径“vendor / addressable-2.1.0 / lib / addressable / uri”添加到用于查找外部文件的全局变量中。该路径将相对于包含此代码所在文件的目录。因此{dir}是config.ru目录,它将{dir}/vendor/addressable-2.1.0/lib/addressable/uri添加到包含的查找路径。

答案 1 :(得分:0)

该行的作用是将路径'vendor / addressable-2.1.0 / lib / addressable / uri'(相对于您的ruby脚本所在的目录)放入加载路径,这是目录列表ruby查找您需要的文件时查看。

该线本身不会尝试访问任何文件。