在Twitter API中使用object.entities的私有方法错误

che*_*ano 4 twitter private-methods ruby-on-rails-3.1

我试图在我的twitter feed控制器中调用tweet.entities时出现以下错误.

私有方法`entities'被称为#Twitter :: Status:0x94d4bf4

我在代码中没有称为实体的方法,我甚至做了一个完整的文件搜索来检查.

我要么需要重命名对象的实体部分,要么以某种方式找到这个所谓的私有方法的位置或以某种方式环绕它.我的twitter_feeds控制器中的方法如下:

  def hometimeline
@user = User.find(current_user.id)

tweets = @user.tweeting.user_timeline(count: '10', include_entities: true)


parsed_tweets = []
i = 0

tweets.each do |tweet| 

  more = Hash.new
  more['test'] = tweet
  internal_hash = Hash.new
  mappings = {"source" => "fixed"}

  another = more['test']

  boo = Array(tweet)


  #newhash = Hash[twee.map {|k, v| [mapping[k], v] }]
  #newhash = Hash[more.map {|k, v| [mappings[k], v] }]
  #newhash = Hash[tweet.map {|k, v| [mappings[k] || k, v] }]

  internal_hash['parsed_text'] = tweet.entities

  internal_hash['id'] = tweet.id
  internal_hash['raw_text'] = tweet.text

  internal_hash['name'] = tweet.user.name
  internal_hash['screen_name'] = tweet.user.screen_name
  internal_hash['user_id'] = tweet.user.id
  internal_hash['user_image_url'] = tweet.user.profile_image_url
  parsed_tweets << internal_hash
  i = i + 1
end

respond_to do |format|
  format.json { render json: parsed_tweets }
end
Run Code Online (Sandbox Code Playgroud)

结束

基本上我正在向客户端发送一组已解析的推文,并希望在服务器上实现链接包装等.

有什么方法可以找到代码认为这个方法的位置,或者有没有办法让它不私有或忽略它所以我可以调用tweet.entities.

编辑:需要注意的另一点是我确实有一个实体模型和实体控制器,但已删除它们仍然得到它.

谢谢

che*_*ano 5

原来这个错误是由Twitter gem引起的,他们有调用实体对象的方法,即tweet.urls,tweet.user_mentions等,而不是我想到的tweet.entities.user_mentions.

文档在这里http://rdoc.info/gems/twitter/Twitter/Tweet