Rails Multiple Params命名相同

时间:2016-02-25 21:00:44

标签: ruby-on-rails

我正在使用一个将用户路由回我的网站的网络服务,并可能附加关于用户的参数(我知道这是一个糟糕的形式,但他们发回的参数与不同数据的参数相同) 。假设他们收集了有关用户拥有哪种宠物的信息。他们将以以下格式发回:

&STANDARD_PETS=1&STANDARD_PETS=3&STANDARD_PETS=4&STANDARD_PETS=8

在Rails中,我们似乎只抓住最后一个参数。所以我看到parameters: {"STANDARD_PETS"=>"8"}

有没有办法在rails中获取传入的其他3个STANDARD_PETS参数?

2 个答案:

答案 0 :(得分:2)

require 'uri'

url = 'http://www.foo.com?&STANDARD_PETS=1&STANDARD_PETS=3&STANDARD_PETS=4&STANDARD_PETS=8'
CGI.parse(URI.parse(url).query)
#=> {"STANDARD_PETS"=>["1", "3", "4", "8"]}

答案 1 :(得分:1)

补充@ MilesStanfield的回答

您可以使用request.original_url访问完整网址(包括参数)

require 'uri'
good_params = CGI.parse(URI.parse(request.original_url).query)