2010-03-25 42 views
0

我需要連接到我們管理的另一臺服務器,並將其結果(採用JSON格式)由rails處理......我該怎麼做?如何連接到單獨的服務器並解析其JSON響應?

謝謝!

+0

你的意思是使用JavaScript/AJAX連接客戶端,或使用ruby連接服務器端? – Josh 2010-03-25 13:10:51

+0

服務器端使用紅寶石 - 雖然使用javascript/ajax也可能通過動態插入腳本標籤..但我認爲它必須是服務器端,因爲它仍然涉及查詢數據庫中的信息。 – r2b2 2010-03-25 13:15:02

回答

0

使用NET/HTTP庫,您可以獲取遠處文件的內容。
然後通過JSON庫,可以將json字符串解析爲散列。

def get_datas 
    url = URI.parse("http://www.example.com/page.json") 
    res = Net::HTTP.start(url.host, url.port) {|http| 
     http.get(url.path) 
    } 
    JSON.parse res.body 
end 
+0

我在嘗試以下操作: 'data = response.body result = ActiveSupport :: JSON.decode(data)'但是我如何將它存儲到ActiveRecord? – ugiflezet 2011-07-25 22:59:12

0

您可以使用類似ActiveResource,如果你的模型一樣,接口類型:

class Thing < ActiveResource::Base 
    self.site = "http://api.example.com:3000/" 
    self.format = :json 
    self.element_name = "thing" 
end 

這可能是比你更需要的,但是,作爲經常網:: HTTP和JSON的圖書館將完成這項工作。