2011-10-28 3 views
3

twitter_helper.rbRoR - uninitialized constante Twitter :: client

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 

Mon Gemfile comprend

gem 'twitter' 

Et je l'ai fait

bundle install 

Mais chaque fois que j'appelle

tweets = get_tweets 

De mon point de vue, je reçois l'exception (constante non initialisée Twitter :: Client). Qu'est-ce que je rate?

+0

Après avoir ajouté la gemme à votre GemFile, avez-vous redémarré votre serveur? Je pose cette question parce que je ne reçois pas cette erreur lorsque je cours votre code en isolation. Essayez ceci (a) les rails c (b) incluent TwitterHelper (c) get_tweets (utilisateur) –

+0

Où se trouve ce module? – WattsInABox

+0

Merci pour l'aide des gars ... apparemment, certains conflits de dépendance faisait bundler installer twitter .9, ce qui est significativement différent de> = 1.0. Après avoir corrigé ces dépendances, j'ai pu installer twitter> = 1.0. :) –

Répondre

1

Je déteste répondre à mes propres questions, mais voilà.

Vérifiez le numéro de version. Des changements significatifs ont été faits entre la gemme Twitter < 1.0 et> = 1.0. Vous devez spécifier

gem 'twitter', '>= 1.0' 

Et puis

bundle install 

et résoudre les conflits de dépendance (si vous obtenez tout).

1

Il est tout à fait inhabituel d'avoir les importations à l'intérieur du module, ont leur extérieur et voir

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 
Questions connexes