【发布时间】:2015-08-17 10:51:46
【问题描述】:
在 Rails 中,当您想通过单个数组参数 you usually do so 发送值列表时,通过在 URL 参数键后添加 []。例如查询字符串?foo[]=1&foo[]=2&foo[]=3被解析为
params = { "foo" => [ 1, 2, 3 ] }
但是对于?foo=1&foo=2&foo=3,只有最后一个参数显示在 params 哈希中:
params = { "foo" => 3 }
一切都很好,您可以控制 URL 格式;你可以只使用[] 语法。但是,如果 URL 是由您无法影响的远程系统构建的,并且坚持使用第二种格式怎么办?如何正确解包参数?
【问题讨论】:
-
你需要手动解析URI,你可以使用URI::decode_www_form
-
通过 github.com/sporkmonger/addressable - 替换 Ruby 的 URI 模块。
标签: ruby-on-rails ruby url-parameters