读取RoR中的参数数组

| 如果我有如下网址:
http://test.com?x=1&x=2&x=3&x=4&x=5&x=6&x=7
那我怎样才能读取所有\“ x \”值?  新增了评论:感谢您的所有回答。我基本上来自Java和.Net背景,最近开始寻找Ruby和Rails。像Java中一样,我们是否没有与request.getParameterValues(\“ x \”);类似的东西?     
已邀请:
如果是STRING,但不是http请求 做这个:
url = \'http://test.com?x=1&x=2&x=3&x=4&x=5&x=6&x=7\'

p url.split(/(?:\\A.*?|&)x=/).drop(1)
如果要将它们转换为整数,请执行以下操作:
p url.split(/(?:\\A.*?|&)x=/).drop(1).map(&:to_i)  (ruby 1.9)
要么
p url.split(/(?:\\A.*?|&)x=/).drop(1).map{|v| v.to_i}
    
您应该使用以下网址而不是您的网址:
http://test.com?x[]=1&x[]=2
然后将这些参数作为数组获取:
p params[:x] # => [\"1\", \"2\"]
    
如果它是一个STRING,但不是http请求,我什至没有想到作者是否不知道如何处理请求url的参数...
url = \"http://test.com?x=1&x=2&x=3&x=4&x=5&x=6&x=7\"
vars = url.scan(/[^?](x)=([^&]*)/)
#=> [[\"x\", \"2\"], [\"x\", \"3\"], [\"x\", \"4\"], [\"x\", \"5\"], [\"x\", \"6\"], [\"x\", \"7\"]] 
x = vars.map{|a| a[1]}
#=> [\"2\", \"3\", \"4\", \"5\", \"6\", \"7\"]
x.map!(&:to_i)
#=> [2, 3, 4, 5, 6, 7] 
或者,如果仅需要提取值,则:
vars = url.scan(/[^?]x=([^&]*)/).flatten
#=> [\"2\", \"3\", \"4\", \"5\", \"6\", \"7\"]
vars = url.scan(/[^?]x=([^&]*)/).flatten.map(&:to_i)
#=> [2, 3, 4, 5, 6, 7]
    

要回复问题请先登录注册