我试图弄清楚这些方法到底在做什么。
$:.unshift(File.join(APP_ROOT, 'lib'))
我知道它的文件路径,但是如果将这段代码分解成段,你会如何描述每一段?
到目前为止,我支持File.join部分,它接受两个参数(APP_ROOT变量和'lib'目录。)然后它取消了什么?
提前致谢。
答案 0 :(得分:3)
$:是加载路径数组的Ruby简写,即一个数组,当被要求提供外部文件时,Ruby用来查找外部文件的路径(尝试在IRB中运行)。
在Ruby中,.unshift是一种采用给定路径的方法(在这种情况下,无论File.join(APP_ROOT, 'lib')
解析为什么),并将其预先添加到加载路径数组的开头。
这样,Ruby会在下次在应用程序的其他位置执行require 'myfile'
行时知道检查APP_ROOT / lib路径。