2013-10-10 125 views
0

我正在做一個使用HTTParty的外部API查詢,該查詢的結果是一個散列,它存儲在我的控制器中的一個實例變量中。如果不將它保存到我的數據庫中,我需要訪問哈希的內容以將它作爲字符串發送到另一個外部應用程序。如何訪問存儲在本地變量中的哈希值

這裏是我的控制器HTTParty調用

@api_response = HTTParty.get("http://xxxxxxxxx.xx/vehicle/reg/#{@user.reg_number}/xxxxxxxxxxxxxxxxxxxxx") 

這是我得到的是存儲在@api_response響應:

{"response"=> 
     {"basic"=> 
       {"reg"=>"xxx", "make"=>"xxxx", "model"=>"xxxx", "version"=>"xxxxx", "body"=>"xxxxxx", "doors"=>"x", "reg_date"=>"xxxxxx", "engine_cc"=>"xxxxxx", "colour"=>"xxxxx", "fuel"=>"xxxxxx", "transmission"=>"x", "data_type"=>"x", "co2_emissions"=>"xxx"} 
     } 
} 

因爲它是我能夠顯示的內容@ api_response在我的意見,但我需要檢索信息並將其傳遞。

+1

你能更清楚你的問題是什麼嗎?你想把散列轉換成字符串嗎? – usha

+0

是的Vimsha,那麼我需要將該字符串傳遞給外部應用程序。我的問題是,我不知道如何檢索哈希的內容,並使其可用於其他外部應用程序。 – Jax

回答

1

您使用圍繞散列鍵的方括號來訪問散列值。例如,訪問reg指出的反應,你會怎麼做:

@api_response["response"]["basic"]["reg"] 

是不是你要找的,還是你需要做別的事情與這一切?

+0

歡呼的答案,我需要訪問信息,並將其傳遞到只接受字符串的外部應用程序。所以我怎樣才能把它轉換成一個字符串... – Jax

+0

根據你的描述,那會給你一個字符串。或者你的意思是你想要將整個響應編碼爲一個字符串?外部應用採用什麼格式? JSON? –

+0

我需要將信息傳遞到此散列內的外部應用程序config.user.custom_data = { 「phone_number」=>:phone_number, 「address」=>:address, 「comments」=>:comments, 「 reg_number「=>:reg_number, }我希望能夠從api_response哈希中傳遞信息,例如:」make「=>」ford「,」Doors「=>」4「 – Jax