Twitter的未定义方法“搜索”:模块(NoMethodError)

时间:2015-06-16 14:22:49

标签: ruby-on-rails ruby twitter

我正在学习使用ruby的mongodb,我按如下方式编写update.rb:

require 'rubygems'
require 'mongo'
require 'twitter'

require File.join(File.dirname(__FILE__), 'config')

class TweetArchiver
  def initialize(tag)
    connection = Mongo::Connection.new
    db = connection[DATABASE_NAME]
    @tweets = db[COLLECTION_NAME]

    @tweets.create_index([['id', 1]], :unique => true)
    @tweets.create_index([['tags', 1], ['id', -1]])

    @tag = tag
    @tweets_found = 0
  end

  def update
    puts "Starting Twitter search for '#{@tag}'..."
    save_tweets_for(@tag)
    print "#{@tweets_found} tweets saved.\n\n"
  end

  private
  def save_tweets_for(term)
    Twitter.search(term).each do |tweet|
      @tweets_found += 1
      tweet_with_tag = tweet.to_hash.merge!({"tags" => [term]})
      @tweets.save(tweet_with_tag)
    end
  end
end

我运行ruby update.rb,然后得到错误:

  

Twitter的未定义方法“搜索”:模块(NoMethodError)

1 个答案:

答案 0 :(得分:1)

错误很明显。 Twitter模块未定义search方法。

Twitter.search(term).each do |tweet|

您应该检查库的文档,以确保以正确的方式使用它。