ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
我只是想从某个目录访问一个.rb文件,一个教程告诉我使用这个代码,但我不知道它是如何找到gem文件的.
是require File.expand_path(..., __FILE__)项目中需要其他文件的最佳方法吗?
我已经知道这里有很多关于这个问题的线索,但是没有一个标题像我一样有这个措辞.我希望我们能够清除这一点.
$:.unshift(File.expand_path("../../lib", __FILE__))
Run Code Online (Sandbox Code Playgroud)
你可以在很多Ruby代码中看到这样的东西.无论这是否合适,意见都会有所不同.
我们可以对每个部分进行一些解释吗?真的很重要.我只了解其中一些.
在查看Ruby中的代码时,我偶然发现了这个sintax.代码是:
if __FILE__ == $PROGRAM_NAME
#some code...
end
Run Code Online (Sandbox Code Playgroud)
我想__FILE__是一个变量,它让我知道我所在文件的名称?但那么什么是$PROGRAM_NAMEsimbolize呢?另外,为什么这个if语句是必要的,因为程序可以使用或不使用它?