【发布时间】:2017-01-25 21:23:13
【问题描述】:
我通过 Ajax PATCH 调用发送一个数组 ("[1,3,44,2,0]"),它到达如下:
Parameters: {"ids"=>"[1,3,44,2,0]"}
为了进行污点检查,我使用以下行 - 其中匹配锚定字符串的开头和结尾,并确保至少有一位数字,或者数字以逗号分隔:
raise "unexpected ids #{params[:ids]}" unless params[:ids].match(/\A\[(\d+,)*\d+\]\z/)
为了制作一个真正的整数数组,我使用以下方法(去掉括号,用逗号分割,将每个字符串元素转换为整数):
irb> "[1,3,44,2,0]"[1...-1].split(',').map {|e| e.to_i}
=> [1, 3, 44, 2, 0]
有没有更好(更简单、更便宜、更快)的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails arrays ruby parameters int