获取哈希表的元素

时间:2013-02-11 09:05:38

标签: ruby-on-rails hash

我跑:

params[:taxes].each { |pst|
   puts(pst)
}

得到了:

{"country"=>"USA", "tax"=>"20"}

我怎样才能获得该国家的参数?

我试过了:

pst[:country]
pst["country"]

但它不会打印任何内容。

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:5)

由于您只使用一个元素(此处为pst)来迭代哈希,因此它会在每个步骤中返回一个长度为2的数组。您只能在第一次迭代中通过调用"USA"收到pst[1][:country]。也许您可以更方便地在块中定义两个元素进行迭代,从而使您能够在每个步骤中访问键和值:

params[:taxes].each do |key, value|
   puts value[:country]
end

答案 1 :(得分:1)

尝试使用单引号

pst['country']

答案 2 :(得分:1)

尝试:

params[:taxes].each_pair do |key, value|
  puts value[:country]
end

获取国家/地区名称