2017-12-01 17 views
1

私は宝石を作りました。あなたはここで完全なソースコードを見ることができます:(いずれにしても、宣伝ではない) https://github.com/agilie/instagram_api_gem手作業が必要です。

をしかし、私はRailsのプロジェクトに

# Gemfile 
gem 'instagram_api_client' 

をそれを使用する場合、それは手動でそれを必要とそれまでは動作しません。

require 'instagram_api' 

なぜこのようなことが起こりますか?私はそれが他のレールの宝石の仕事のように手動で必要とすることなく動作するようにしたい。

+0

この宝石はどこにありますか?あなたはそれをrubygemsにアップロードしましたか?宝石を追加した後で 'bundle'を再実行しましたか? – mudasobwa

+0

はい、rubygems(https://rubygems.org/gems/instagram_api_client)にあります。私は両方の方法を試してきました - それは、rubygemsとリポジトリから直接です。結果は同じです。確かに私は追加した後バンドルした。 –

+2

RubyGemsの命名規則に従う必要があります。 [あなた自身の宝石を作る](http://guides.rubygems.org/make-your-own-gem/)ガイドから:_ "パッケージのコードは** lib **ディレクトリ内に置かれます。あなたの宝石と同じ名前の** ** ** Rubyファイルを持っているので、それはロードされるので[...] "_ – Stefan

答えて

3

Railsのオートロード規則に準拠していません。 libフォルダの最上位レベルのコンテンツ

require 'instagram_api' 

でファイルinstagram_api_client.rbを作成します。それはトリックを行う必要があります。

宝石の場合、自動的にロードされるファイルの名前は、宝石の名前と正確に一致する必要があります。 @TomLordにより示唆されるように


または、一つは単にGemfile自体に

gem 'instagram_api_client', require: 'instagram_api' 

を指定することができます。

+0

あなたの答えはありがとう、私はそれを試してみる –

+0

あなたは最上位の 'lib'フォルダは必要ありません。 'require:" ... "' *をGemfile *に指定することができます。 –

+0

@TomLordありがとう、私はそれを知らなかった、更新されました。 – mudasobwa

関連する問題