2011-10-28 12 views
3

twitter_helper.rbRoRの - 初期化されていない一定のツイッター::クライアント

module TwitterHelper 

    require 'rubygems' 
    require 'twitter' 
    require 'net/http' 
    require 'uri' 


    def get_tweets (twitter_user) 
    begin 
     @tweets = Array.new 
     @twitter = Twitter::Client.new 

     Twitter.user_timeline(twitter_user) do |tweet| 
      @tweets.push(tweet) 
     end 
     @tweets 
    rescue Exception => e 
     puts e 
     _("Errors: #{e.to_s} 
     ") 
    end 
    end 

end 

マイgemfileが

gem 'twitter' 

が含まれており、私は

bundle install 

しかし、私は呼び出すたびに行ってきました

tweets = get_tweets 

私の見解では、例外(初期化されていない定数Twitter :: Client)があります。私は何が欠けていますか?

+0

GemFileにgemを追加した後、サーバーを再起動しましたか?これを尋ねるのは、コードを単独で実行するときにこのエラーが発生しないためです。 (a)レールc(b)にTwitterHelperを含める(c)get_tweets(user) –

+0

このモジュールはどこにありますか? – WattsInABox

+0

助けを借りてくれてありがとう...明らかにいくつかの依存関係の競合は、bundlerが。= 1.0と大きく異なるtwitter .9をインストールしていました。これらの依存関係を修正した後、twitter> = 1.0をインストールすることができました。 :) –

答えて

1

を参照してください。

バージョン番号を確認してください。 twitter gem < 1.0と> = 1.0の間に大きな変更がありました。あなたは

gem 'twitter', '>= 1.0' 

そして

bundle install 

を指定し、(あなたがいずれかを取得する場合)の任意の依存関係の競合を解決する必要があります。

1

それは私が私自身の質問に答える嫌い、しかしここに、モジュール内部の輸入を持っていることは非常に珍しいの外にそれらを持っていると

require 'rubygems' 
require 'twitter' 
require 'net/http' 
require 'uri' 

module TwitterHelper 
    def get_tweets (twitter_user) 
    begin 
     @tweets = Array.new 
     @twitter = Twitter::Client.new 

     Twitter.user_timeline(twitter_user) do |tweet| 
      @tweets.push(tweet) 
     end 
     @tweets 
    rescue Exception => e 
     puts e 
     _("Errors: #{e.to_s} 
     ") 
    end 
    end 

end 
関連する問題