gem 和 require 的区别(require open-uri)

发布于 2024-12-19 11:12:37 字数 289 浏览 1 评论 0原文

我只是想亲自了解一下。

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

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

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

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

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

I just wanted to understand for my self.

I'm using the nokogiri gem (for parsing HTML). If I got it right to open URLs I need to use a method from the gem 'open-uri'.

But when I include it in my Gemfile (on Windows developer's machine):

gem 'open-uri' - there is an error while bundle install that it can not find gem.

So If I use require 'open-uri' - its working.

So can some explain what is going on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

慕巷 2024-12-26 11:12:37

您正在使用 bundler 来处理您的 gem 依赖项,并且您做得正确,但是 OpenUri 是 Ruby 标准库的一部分。这就是为什么如果您想在代码中使用它,您需要需要它。

You're using bundler for your gem dependecies and you're doing it right but OpenUri is part of the Ruby standard library. That's why you only need to require it if you want to use it in your code.

初吻给了烟 2024-12-26 11:12:37

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

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

然后 bundler 安装指定的 gem。

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

require is used to load another file and execute all its statements. This serves to import all class and method definitions in the file. require also keeps track of which files have been previously required so it doesn't execute it twice.

A RubyGem is a software package, commonly called a “gem”. Gems contain a packaged Ruby application or library. The RubyGems software itself allows you to easily download, install, and manipulate gems on your system.
- What is a Gem?:

The Gemfile is then used by bundler to install the specified gems.

open-uri is not a gem but part of the Ruby Standard Library so it just needs to be required.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文