2017-11-15 16 views
0

RubyコンソールでTwitter APIを使用するコマンドを実行しようとすると、エラーNameError: uninitialized constant Twitterが返されます。NameError:初期化されていない定数

twitterFeed.rbという名前は、twitter.rbという名前にしないでください。このファイルは私のconfig/initializersフォルダに置かれています。私はすでにbundle installを走らせていて、gem 'twitter', '~> 6.2'という行は私のgemファイルにあります。

require 'rubygems' 
require 'bundler/setup' 

require 'twitter' 
require 'json' 

client = Twitter::REST::Client.new do |config| 
config.consumer_key = ENV['TWITTER_CONSUMER_KEY'] 
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET'] 
config.access_token = ENV['TWITTER_ACCESS_TOKEN'] 
config.access_token_secret = ENV['TWITTER_ACCESS_TOKEN_SECRET'] 
end 
+0

'$ LOAD_PATH'に複数の' twitter.rb'がありますか?以前の実験の空の 'twitter.rb'がある可能性があります。 – tadman

+0

ファイル名は伝統によってすべて小文字でなければならないことに注意してください: 'twitter_feed.rb'があなたの所持品よりも好ましいです。 – tadman

+0

@tadmanどうすれば確認できますか?申し訳ありませんが、私はレール環境の初心者です。 –

答えて

0

あなたのコードを実行する代わりに、Railsのコンソールのirbを使用しようとしているようです。 irb(またはpry)を実行すると、実際にRails環境がロードされていないため、使用可能な宝石はありません。手動でそれらを要求することはできますが、依然としてRails環境にはアクセスできません。

代わりに、rails console(または略称rails c)を使用してください。 IRBと例えば

は、ツイッターがロードされていない:

rails_dir » irb 
2.2.4 :001 > Twitter 
NameError: uninitialized constant Twitter 
    from (irb):1 
    from /Users/bbugh/.rvm/rubies/ruby-2.2.4/bin/irb:11:in `<top (required)>' 

rails cで、それだけで正常に動作します:

rails_dir » rails c 
Loading development environment (Rails 5.0.1) 
2.2.4 :001 > Twitter 
=> Twitter 

あなたのイニシャライザのうち、それらのrequire秒のすべてを取ることができます - Railsはその時点までに自動的に宝石を必要とします。 Railsでコンソール作業をしているときは、rails consoleを使うだけです。

+1

ご協力いただきありがとうございます。 –

関連する問題