29

我只是想了解我自己。

我正在使用 nokogiri gem(用于解析 HTML)。如果我可以正确打开 URL,我需要使用 gem 'open-uri' 中的方法。

但是当我将它包含在我的 Gemfile 中(在 Windows 开发人员的机器上)时:

gem 'open-uri'- 捆绑安装时出错,找不到 gem。

所以如果我使用require 'open-uri'- 它的工作。

那么有人可以解释发生了什么吗?

4

2 回答 2

57

您正在为您的 gem 依赖项使用捆绑程序,并且您做得对,但OpenUri是 Ruby 标准库的一部分。这就是为什么你需要在你的代码中使用它时才需要它。

于 2011-12-03T10:20:57.287 回答
9

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

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

然后捆绑器使用 Gemfile安装指定的 gem。

open-uri 不是 gem,而是 Ruby 标准库的一部分,因此只需要它。

于 2011-12-03T10:23:55.927 回答