JSON к активной записи - PullRequest
       81

JSON к активной записи

1 голос
/ 05 марта 2012

Я немного запутался, как я могу взять спокойный ресурс JSON и получить к нему доступ, как если бы это была локальная активная запись с использованием активного ресурса?Я нахожу множество учебных пособий примерно в 2008 году, но ничего, что выглядит совсем недавно.

В настоящее время у меня есть что-то вроде:

def freebase_list

  connection = Faraday.new 'https://www.googleapis.com/freebase/v1' do |conn|

    conn.adapter Faraday.default_adapter
    conn.use FaradayMiddleware::ParseJson
    #conn.use Faraday::Response::Mashify
  end

  response = connection.get do |req|
    req.url('search', :query => self.title, :limit => 10)#, :filter => '(any namespace:/wikipedia/en_id namespace:/authority/imdb/title)')
  end

  if response.body && response.body["result"]
    response.body["result"].delete_if {|x| x["notable"].nil? }
    response.body["result"].delete_if {|x| x["score"] < 50 }
  end
end

def types
  result = []
  self.freebase_list.each do |r|
    result << { :name => r["notable"]["name"], :value => r["mid"] } if r["notable"]
  end
  return result
end

Может ли кто-нибудь указать мне правильное направление, я чувствую, что япочти там, но не совсем.

Если я использую активный ресурс напрямую, я получаю возврат nil:

class Freebase < ActiveResource::Base
    self.site = "https://www.googleapis.com/freebase/v1/search/"
    self.format = :json


    #https://www.googleapis.com/freebase/v1/search?query=nirvana
    #Freebase.find(:all, :params => { :query => 'monkey', :limit => 10 })
    #=> nil



end

1 Ответ

2 голосов
/ 05 марта 2012

Существует библиотека для этого, встроенная в рельсы, которая называется ActiveResource и предоставляет вам функциональность, аналогичную ActiveRecord.

class User < ActiveResource::Base
  self.site = "http://url.com/"
end

По новым документам ,JSON является форматом по умолчанию.

В нем также есть railscasts эпизод.

...