Почему я получаю нулевой объект вместо короткой ссылки от 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)