web-dev-qa-db-ja.com

gemとrequireの違い(open-uriが必要)

私は自分のことを理解したかっただけです。

Nokogiri gem(HTMLの解析用)を使用しています。 URLを開くことが正しければ、gem 'open-uri'のメソッドを使用する必要があります。

しかし、それを(Windows開発者のマシン上の)Gemfileに含めると、次のようになります。

gem 'open-uri'-バンドルのインストール中に、gemが見つからないというエラーがあります。

だから私がrequire 'open-uri'-その働き。

それで、何が起こっているのかを説明できますか?

28
WHITECOLOR

あなたはあなたの宝石依存に bundler を使用していて、それを正しく行っていますが、 OpenUri はRuby標準ライブラリの一部です。それはonlyをコードで使用する場合に必要な理由.

55
lucapette

requireは、別のファイルをロードしてそのすべてのステートメントを実行するために使用されます。これは、ファイル内のすべてのクラスとメソッドの定義をインポートするのに役立ちます。 requireは、以前に必要だったファイルも追跡するため、2度実行されることはありません。

RubyGemは、一般に「gem」と呼ばれるソフトウェアパッケージです。宝石にはパッケージ化されたRubyアプリケーションまたはライブラリが含まれています。RubyGemsソフトウェア自体を使用すると、システムで宝石を簡単にダウンロード、インストール、および操作できます。- 宝石とは?

Gemfileは bundler によって使用され、指定されたgemをインストールします。

open-uriはgemではなく、Ruby標準ライブラリの一部なので、必要なだけです。

9
jlundqvist