Twitter实体不再在ruby脚本中识别

时间:2011-12-02 09:17:49

标签: ruby twitter

我有一个ruby脚本,用于扫描给定推文中的每种类型的实体:

status = Twitter::Client.new.status(tweet[:id_str], {:include_entities => "1"})
status[:entities].each do |x|
  #job on the entity
end

直到昨天一直表现良好。现在我得到NoMethodError: undefined method 'entities' for #<Twitter::Status:0x000001033e1800> 我无法理解,因为我已经检查过status确实包含第一行之后的实体。 有线索吗?

编辑:事实证明它是twitter gem(v2.0.0)的新版本。首先,我想将它降级到最后一个版本(v1.7.2),但是我得到了一个恼人的宝石版本错误:

Bundler could not find compatible versions for gem "hashie":
  In Gemfile:
    topsy (~> 0.3.6) depends on
      hashie (~> 1.0.0)

    twitter (= 1.7.2) depends on
      hashie (1.1.0)

我该如何解决?

2 个答案:

答案 0 :(得分:1)

如果您需要特定的宝石版本,可以通过Gemfile强制设置:

gem "rack", "1.0.1"
gem "rails", ">=2.3.2"

答案 1 :(得分:0)

最后,这是Gemfile中的冲突:

gem 'topsy', '~> 0.3.6'
gem 'twitter', '1.7.2'

正在请求不同版本的hashie,所以我只是删除了topsy的版本并且它有效。