2013-10-10 59 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