我正在使用一个将用户路由回我的网站的网络服务,并可能附加关于用户的参数(我知道这是一个糟糕的形式,但他们发回的参数与不同数据的参数相同) 。假设他们收集了有关用户拥有哪种宠物的信息。他们将以以下格式发回:
&STANDARD_PETS=1&STANDARD_PETS=3&STANDARD_PETS=4&STANDARD_PETS=8
在Rails中,我们似乎只抓住最后一个参数。所以我看到parameters: {"STANDARD_PETS"=>"8"}
有没有办法在rails中获取传入的其他3个STANDARD_PETS
参数?
答案 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)