Почему я получаю нулевой объект вместо короткой ссылки от bitly?

Я использую достаточно простую реализацию, основанную на этом примере: http://www.appelsiini.net/2010/using-bitly-with-httparty

Я положил этот файл в папку lib (bitly.rb)

require 'rubygems'
require 'httparty'
class Bitly
  include HTTParty
  base_uri "api.bit.ly"

  @@login   = "goldhat"
  @@api_key = "R_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

  def self.shorten(url)
    response = get("/v3/shorten?login=#{@@login}&apiKey=#{@@api_key}&longUrl=#{url}")
    response["data"]["url"]
  end
end

По какой-то причине я получаю нулевой объект. Как будто горько не отвечает даже никакими данными. Я проверил это в своей консоли и в моем приложении и получил ту же ошибку:

NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
        from c:/goldhat_production/lib/bitly.rb:9:in `shorten'
        from (irb):1

Есть идеи?

2 ответа

Альтернатива сделай сам - вы можете найти хорошо проверенный драгоценный камень Ruby для bit.ly здесь.

Проблема не в коде Bitly, а в том, что вы помещаете его в каталог lib/ в приложении Rails 3. Чтобы получить lib/ загружен, вам нужно следующее в config/application.rb:

config.autoload_paths += %W(#{config.root}/lib)
Другие вопросы по тегам