我有一个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)
我该如何解决?
答案 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的版本并且它有效。