当我尝试在ruby控制台中运行任何使用Twitter API的命令时,我收到错误NameError: uninitialized constant Twitter
。
我已将此命名为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 :(得分:1)
您似乎正在尝试使用irb
而不是Rails控制台来运行您的代码。当您运行irb
(或pry
)时,您实际上并没有加载Rails环境,因此没有任何宝石可用。您可以手动要求它们,但您仍然无法访问Rails环境。
您要做的是使用rails console
(或简称为rails c
)。
例如,使用irb,Twitter尚未加载:
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
。