Я пытаюсь заставить активный ресурс (на Rails 3.2) работать с API Freebase, и пока мне не очень повезло. Как я могу отладить рельсы, чтобы увидеть, что происходит, и убедиться, что запрос правильно сформирован?
Я думаю, что суффикс .json вызывает сбой, но я не знаю, как проверить, что происходит?
Ошибка:
ActiveResource::ResourceNotFound: Failed. Response code = 404. Response message = Not Found.
Код:
class Freebase < ActiveResource::Base
class << self # also tried without this, same result
def element_path(id, prefix_options = {}, query_options = nil)
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
"#{prefix(prefix_options)}#{collection_name}/#{id}#{query_string(query_options)}"
end
def collection_path(prefix_options = {}, query_options = nil)
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
"#{prefix(prefix_options)}#{collection_name}#{query_string(query_options)}"
end
end
self.site = "https://www.googleapis.com/freebase/v1/"
self.format = :json
#https://www.googleapis.com/freebase/v1/search?query=nirvana&indent=true
#Freebase.get('search', :query => 'nirvana')
end
ОБНОВЛЕНИЕ:
Итак, я обнаружил, что две вещи идут не так...
1) collection_path, который я пытаюсь заменить, вообще не работает.. он по-прежнему добавляет .json к каждому запросу.
2) https://www.googleapis.com:443/freebase/v1/freebases/search.json?query=nirvana
После этого он прикрепляет freebase ... есть идеи?
Я также попробовал это исправление:
Удалить расширение .xml из запроса ActiveResource
Но это также не удалило суффикс JSON.
ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ:
Добавлено предлагаемое обновление ниже, которое дает правильный ПУТЬ, но теперь я получаю
GET https://www.googleapis.com:443/freebase/v1/search/?query=monkey
--> 200 OK 2732 (693.3ms)
NoMethodError: undefined method `collect!' for #