如何将哈希转换为ruby中的字符串

时间:2014-08-17 22:39:57

标签: ruby

我试图用Ruby做一个wolfram api。我发现你可以根据你在wolfram页面上找到答案的文本创建哈希。我设法在我的控制器中做了类似的事情:

class CountController < ApplicationController
  def index
    @result = Wolfram.fetch('6*7')
    @hash = Wolfram::HashPresenter.new(@result).to_hash
    @pods = @hash[:pods]
  end
end

当我想在我的网站上展示这个时,我会在我看来做这样的事情:

<p>
    <b>Result:</b>
    <%= @result %>
    <br>
    <b>Hash:</b>
    <%= @hash %>
    <br>
    <b>Hash.pods</b>
    <%= @pods["Input"]%>
    <br>
</p>

我的页面上有这样的内容:

Result: #<Wolfram::Result:0x00000004758b78>
Hash: {:pods=>{"Input"=>["6×7"], "Result"=>["42"], "Number name"=>["forty-two"], "Number line"=>[""], "Illustration"=>["6 | \n | 7"]}, :assumptions=>{}}
Hash.pods ["6×7"] 

我希望只有6x7而不是[&#34; 6x7&#34;]。有没有解决方案将此哈希值更改为字符串?

1 个答案:

答案 0 :(得分:1)

它显示为[6x7]的原因是你的哈希将它存储在一个数组中。以任何其他方式显示它将会产生误导。但是你可以用:

Hash[@hash.map {|key, value| [key, (value.kind_of?(Array) && value.size == 1) ? value.first : value }]