我已经构建了一个表单标记,并从用户中选择了值。这就是我得到的:
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。 最佳答案
你可以假装…
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]
保持数据不变。