2012-11-08 39 views
2

嘿家伙我有一个问题,我面临的Twitter的宝石。我有一个文件(twitter.rb)与此内容未初始化的常量Twitter(NameError)

require "rubygems" 
require "twitter" 

puts Twitter.user_timeline("roykasa").first.text 
puts Twitter.user("roykasa").location 
search = Twitter::Search.new 
search.containing("hate").to("StewieJokess"). 
result_type("recent").each do |r| puts r.text end 

当我运行该文件,我得到这个错误: 未初始化不断推特(NameError) 我上那么,用户也有类似的问题在其他地方见过和他通过安装新版本的ruby和rubygems解决了这个问题,但是我遇到的问题是运行suse 12.1,并运行ruby和ruby gem的最新版本。从任何地方的第三方都不能找到rpms。至少我已经搜查过。有人知道另一种方式吗?

回答

1

如果您正在运行Ruby 1.8.x,您应该能够通过将自己的脚本重命名为不同于twitter.rb的任何内容来解决您的问题。

这是因为twitter gem中的主文件命名完全是这样的,并且您的文件可能在命令创建的组合虚拟文件系统中覆盖它。在Ruby 1.9.x之前,require不仅可以从库目录加载,还可以加载相对于当前工作目录的文件,在这种情况下,您的脚本所在的目录。

+0

不,这不会帮助原因是我还有一个文件名为追随者,location.rb这也引起了同样的错误,当我运行它。甚至当我在irb解释器中逐行运行这个文件时,我在**放入Twitter.user_timeline(“roykasa”)时得到同样的错误first.text ** – roykasa

+0

可能因为你运行了irb '命令与文件在同一个工作目录中? “followers-location.rb”也可能位于同一文件夹中。工作目录中的任何文件都不应该与您要在脚本中加载的任何gem文件具有相同的相对路径,因为如果这样做,它不会从gem加载,而是从工作目录加载。 – aef

+0

真棒..现在工作正常。谢谢。 – roykasa

0

不要命名您的文件作为twitter.rb,也确保有在同一个目录中没有其他的文件名为twitter.rb

相关问题