如何将hash中的字符串转换为整数

时间:2012-12-01 14:40:49

标签: ruby-on-rails ruby

我已经构建了一个表单标记,并从用户中选择了值。这就是我得到的:

params[:user_answer_ids] = {"170"=>["599"], "162"=>["561", "563", "565"], "160"=>["549", "550"]}

现在我想将此哈希中的所有字符串转换为int,例如:

params[:user_answer_ids] = {170=>[599], 162=>[561, 563, 565], 160=>[549, 550]}

我想转换为int,因为我想稍后比较问题和答案ID。目前我在循环哈希时必须使用to_i方法,所以我想知道是否有任何方法可以一次将所有字符串转换为int。

1 个答案:

答案 0 :(得分:3)

你可以假装它......

h={"170"=>["599"], "162"=>["561", "563", "565"], "160"=>["549", "550"]}
h.default_proc = proc{|h,k| h.key?(k.to_s) ? h[k.to_s].map(&:to_i) : nil}
p h[162]

保持数据不变。