gem和require之间的区别(需要open-uri)

WHI*_*LOR 28 ruby gemfile

我只想了解自己.

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

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

gem 'open-uri' - 捆绑安装时出现错误,无法找到gem.

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

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

luc*_*tte 55

你正在使用bundler来实现你的宝石依赖,而你正在做正确的事,但OpenUri是Ruby标准库的一部分.这就是为什么如果你想在你的代码中使用它,你需要它.

  • 通常,您应该在要使用库的文件顶部要求它.如果有帮助,请接受答案. (2认同)

小智 9

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

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

然后,捆绑器使用Gemfile 来安装指定的gem.

open-uri不是gem,而是Ruby Standard Library的一部分,因此只需要它.