Ruby gem和require之间的差异(requireopenuri)

Ruby gem和require之间的差异(requireopenuri),ruby,gemfile,Ruby,Gemfile,我只是想了解自己 我正在使用nokogiri gem(用于解析HTML)。如果我正确地打开URL,我需要使用gem“openURI”中的方法 但当我将其包含在Gemfile(在Windows developer的计算机上)中时: gem'openuri'-捆绑包安装时出错,无法找到gem 因此,如果我使用需要“openuri”,它就可以工作了 那么,有人能解释一下发生了什么吗?您正在使用gem依赖项,而且您做得很好,但它是Ruby标准库的一部分。这就是为什么您只需要在代码中使用它时才需要它。re

我只是想了解自己

我正在使用nokogiri gem(用于解析HTML)。如果我正确地打开URL,我需要使用gem“openURI”中的方法

但当我将其包含在Gemfile(在Windows developer的计算机上)中时:

gem'openuri'
-捆绑包安装时出错,无法找到gem

因此,如果我使用
需要“openuri”
,它就可以工作了


那么,有人能解释一下发生了什么吗?

您正在使用gem依赖项,而且您做得很好,但它是Ruby标准库的一部分。这就是为什么您只需要在代码中使用它时才需要它。

require
用于加载另一个文件并执行其所有语句。这用于导入文件中的所有类和方法定义
require
还跟踪以前需要的文件,因此不会执行两次

RubyGem是一个软件包,通常称为“gem”。Gems包含一个打包的Ruby应用程序或库。RubyGems软件本身允许您在系统上轻松下载、安装和操作gems。 -:

然后使用GEM文件安装指定的GEM


OpenURI不是一个gem,而是Ruby标准库的一部分,所以它只是必需的。

谢谢。在gemfile或其他地方,最好在哪里要求“openuri”?一般来说,您应该在要使用库的文件顶部要求它。如果答案对你有帮助,请接受。小心:打开uri:谢谢。在gemfile或其他地方请求“open uri”的最佳位置?如果您只在一个位置使用它,我建议您在调用之前或函数或文件的开头使用它。非常感谢您的帮助和时间!