Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我只是想了解我自己。
我正在使用 nokogiri gem(用于解析 HTML)。如果我可以正确打开 URL,我需要使用 gem 'open-uri' 中的方法。
但是当我将它包含在我的 Gemfile 中(在 Windows 开发人员的机器上)时:
gem 'open-uri'- 捆绑安装时出错,找不到 gem。
gem 'open-uri'
所以如果我使用require 'open-uri'- 它的工作。
require 'open-uri'
那么有人可以解释发生了什么吗?
您正在为您的 gem 依赖项使用捆绑程序,并且您做得对,但OpenUri是 Ruby 标准库的一部分。这就是为什么你只需要在你的代码中使用它时才需要它。
require用于加载另一个文件并执行其所有语句。这用于导入文件中的所有类和方法定义。require还跟踪以前需要哪些文件,因此它不会执行两次。
require
RubyGem 是一个软件包,通常称为“gem”。Gems 包含一个打包的 Ruby 应用程序或库。RubyGems 软件本身允许您在系统上轻松下载、安装和操作 gem。-什么是宝石?:
然后捆绑器使用 Gemfile来安装指定的 gem。
open-uri 不是 gem,而是 Ruby 标准库的一部分,因此只需要它。