Почему я получаю нулевой объект вместо короткой ссылки от bitly? - PullRequest
0 голосов
/ 13 марта 2011

Я использую достаточно простую реализацию, основанную на этом примере: 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 ]

1 голос
/ 13 марта 2011

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

0 голосов
/ 13 марта 2011

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

config.autoload_paths += %W(#{config.root}/lib)
...