2

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

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。

4

1 回答 1

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]

保持数据不变。

于 2012-12-01T14:55:51.323 回答