阅读RoR中的参数数组

Sud*_*ali 6 ruby ruby-on-rails webrequest

如果我有以下URL:

http://test.com?x=1&x=2&x=3&x=4&x=5&x=6&x=7
Run Code Online (Sandbox Code Playgroud)

那么我怎样才能读出所有"x"值?

添加了新评论:感谢您的所有答案.我基本上来自Java和.Net背景,最近开始寻找Ruby和Rails.就像在Java中一样,我们没有像request.getParameterValues("x")那样的东西;

Vas*_*ich 26

您应该使用以下网址而不是您的网址:

http://test.com?x[]=1&x[]=2
Run Code Online (Sandbox Code Playgroud)

然后你会把这些参数作为数组:

p params[:x] # => ["1", "2"]
Run Code Online (Sandbox Code Playgroud)


saw*_*awa 3

如果它是一个字符串,但不是一个 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)
Run Code Online (Sandbox Code Playgroud)

如果要将它们转换为整数,请执行以下操作:

p url.split(/(?:\A.*?|&)x=/).drop(1).map(&:to_i)  (ruby 1.9)
Run Code Online (Sandbox Code Playgroud)

或者

p url.split(/(?:\A.*?|&)x=/).drop(1).map{|v| v.to_i}
Run Code Online (Sandbox Code Playgroud)