2015-04-29 170 views
0

我通過第三方從我的鐵路應用程序發送消息並跟蹤提交詳細信息並將其存儲在我的數據庫表中。發送消息後,第三方發佈郵件將詳細信息傳遞到我給定的URL,像我的網址得到了迴應。將數據從api請求保存到數據庫(JSON)

http://yourdomain.com/dlr/pushUrl.php?data=%7B%22requestId%22%3A%22546b384ce51f469a2e8b4567%22%2C%22numbers%22%3A%7B%22911234567890%22%3A%7B%22date%22%3A%222014-11-18+17%3A45%3A59%22%2C%22status%22%3A1%2C%22desc%22%3A%22DELIVERED%22%7D%7D%7D 

像以下格式,

data={ 

    "requestId":"546b384ce51f469a2e8b4567", 

    "numbers":{ 

    "911234567890":{ 

     "date":"2014-11-18 17:45:59", 

     "status":1, 

     "desc":"DELIVERED" 

}}} 

我用下面的代碼在我的控制器,以顯示數據。

json = params["data"]["numbers"] 
puts json 

但它顯示NULL。現在我想將數據保存到數據庫中。是否有任何Gem被使用或者其他方法是否好。對ROR來說是新的。

+0

我理解正確嗎? 'params ['data']'返回你寫的和'params ['data'] ['numbers']'返回'NIL'? – pmichna

+0

params ['data']和params ['data'] ['numbers']都只返回NIL。 –

+0

現在拋出'沒有將nil隱式轉換爲String'錯誤 –

回答

3

你的問題是,params["data"]是一個字符串,但你把它當作一個散列。

data = JSON.parse(params["data"]) 
puts data['numbers'] 
+0

其工作罰款。現在如何在我的表格中保存requestId,數字,日期,desc。如何閱讀? –

+0

Request.new(data).save http://guides.rubyonrails.org/active_record_basics.html –

+0

如何在我的URL響應時自動保存數據到數據庫。 –