- 更新 -
好的,修好了。这就是我做的。完全去除所有红宝石和rubygems。然后安装ruby1.9.1-full和rubygems1.9.1然后安装twitter gem。
大家好,
我在使用Twitter宝石时遇到了麻烦。我正在使用ruby 1.8.7
安装完成后,当我尝试运行一个简单的脚本时,我收到此错误
ruby twitter.rb
./twitter.rb:5:未初始化的常量Twitter(NameError)
来自/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require'
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require'
来自twitter.rb:2
我在Ubuntu盒子上运行它。我检查了gem -list,我看到那里列出了Twitter(1.1.0)。
这是我试图运行的代码
require "rubygems"
require 'twitter'
puts Twitter.user_timeline("test").first.text
有什么想法吗?
答案 0 :(得分:1)
我相信它只适用于Ruby 1.9如果你想使用twitter gem试用版本0.9和Ruby 1.8.x
答案 1 :(得分:0)
这对我有用:
ruby-1.9.2-p0 > require 'twitter'
=> true
ruby-1.9.2-p0 > puts Twitter.user_timeline("test").first.text
TExES Pedagogy and Professional Responsibilities EC-12 Teacher Certification Test Prep Study Guid… - by Sharon A Wynne http://amzn.to/f3kF74
=> nil
您使用的是哪个版本的红宝石?
答案 2 :(得分:0)
gouravtiwari21的评论似乎解决了这个问题,但如果你想使用Ruby 1.8.x运行它,建议twitter gem需要0.9.0是错误的。
您可以在此处查看版本兼容性: http://travis-ci.org/#!/jnunemaker/twitter
它显示使用Ruby安装的twitter gem低至1.8.7。
对我而言,拥有正确的依赖宝石以及正确的版本是一个问题。
以下是我如何运作:
我跑了:
sudo gem list
将特定宝石的版本与我在此处找到的版本进行比较: https://github.com/jnunemaker/twitter/blob/master/HISTORY.md(我只是搜索“依赖”这个词,看看twitter关心哪个版本。
我也发现了这个差异: https://github.com/jnunemaker/twitter/commit/ac8114c1f6ba2da20c2267d3133252c2ffc6b6a3
我将那里列出的宝石与我安装的宝石进行了比较,我确保我的系统与我在版本说明中看到的一致。通常发生的事情是我有一个宝石的多个版本,并且由于某种原因,较低版本优先。
我不确定为什么还要添加
gem 'twitter', '1.7.1'
到我的Gemfile,但是唉,这是让这些东西运转所需的最后一步。
不要忘记重新启动服务器,你应该做得很好!