2016-12-03 3 views
1

私はいくつかの宝石に気づきましたが、それはあなたがこれをrequire 'a_gem'のように使用したいファイルに含める必要がありますが、これは必ずしもそうではありません。ルビーの宝石を使用する際には、いつ必要なのですか?

私は自分で宝石を作ります。 .rbファイルにrequire 'my_gem'を追加したくない場合はどうすればよいですか?

+0

どういう意味ですか?あなたはそれを使用するために常に宝石が必要です。しかし、あるファイルに宝石を必要とし、それを別のファイルで使うことができます。 – Aleksey

答えて

2

require "my_awesome_gem" 
MyAwesomeGem.do_something_great 

ただし、アプリケーションは「Gemfile」と呼ばれるファイルで、アプリケーションの宝石を定義する、bundlerを使用している場合:

source 'http://rubygems.org' 
gem 'my_awesome_gem' 

アプリケーションは自動的にGemfileで指定された宝石のすべてを必要とするようにバンドラを呼び出すことができる:

require "bundler" 
Bundler.require 
MyAwesomeGem.do_something_great 

RailsプロジェクトではBundler.requireを使用しているため、Railsアプリケーションで明示的に宝石を使用する必要はありません。宝石をGemfileに追加して移動するだけです。

Bundler.requireの詳細については、Railsはバンドラーをどのように使用するか、ジャスティン・ワイスによるHow Does Rails Handle Gems?を参照してください詳細についてはbundler documentation

を参照してください。

2

これは意味をなさない。もしあなたがGemを書いて使いたいなら、それはどこかで必要とされる必要があります。

この "どこか"はあなたのスクリプトに明示することができます。Gemfileで書かれているか、スクリプトによって必要とされる別のスクリプト/ gemで必要となる可能性があります。

宝石を書く場合、Rubyは自動的にすべてのスクリプトにそれを含めません。

最後に、あなたが公開した場合、地球上のすべてのRubyスクリプトが魔法のようにそれを必要とし、コードを実行する必要がありますか?

require 'a_gem'を使用していないあなたが見たプロジェクトがGemfileを使用していたとします。通常、宝石を使用しているアプリケーションは、宝石を必要とする必要が

関連する問題