我看到了两种常用的技术,用于将当前正在执行的文件的目录添加到$LOAD_PATH (或$:)。我看到了在你不使用gem的情况下这样做的好处。显然,其中一个看起来比另一个更冗长,但有理由使用一个而不是另一个吗?
第一个,详细的方法(可能是过度杀伤力):
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
更直截了当,更快更脏:
$:.unshift File.dirname(__FILE__)
有没有理由把其中一个放在另一个上面?
发布于 2009-05-07 23:44:20
我会说使用$:.unshift File.dirname(__FILE__)
而不是另一个,原因很简单,因为我在代码中看到它比$LOAD_PATH
使用得更多,而且它也更短!
发布于 2009-09-21 21:01:50
Ruby load path通常被写成$:,但是仅仅因为它很短,并不能让它变得更好。如果你更喜欢清晰而不是聪明,或者如果为了简洁而让你发痒,你不需要仅仅因为其他人都这样做。向……问好
$LOAD_PATH
..。向…说再见。
# I don't quite understand what this is doing...
$:
发布于 2015-11-05 12:09:52
在使用Rspec时,我遇到的最好的方法是通过相对路径添加dir。我发现它足够冗长,但仍然是一个很好的线性程序。
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
https://stackoverflow.com/questions/837123
复制相似问题