【问题标题】:How to accept multiple URL parameters in Rails with the same key?如何在 Rails 中使用相同的键接受多个 URL 参数?
【发布时间】: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 是由您无法影响的远程系统构建的,并且坚持使用第二种格式怎么办?如何正确解包参数?

【问题讨论】:

标签: ruby-on-rails ruby url-parameters


【解决方案1】:

使用来自@maxcal 的提示,我想出了这个解决方案(以避免在我正在开发的这个完全臃肿的应用程序中添加更多的宝石):

current_query_string = URI(request.url).query
foo_values = URI::decode_www_form(current_query_string).
  select { |pair| pair[0] == "foo" }.
  collect { |pair| pair[1] }

【讨论】:

    猜你喜欢
    • 2018-05-27
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2020-05-18
    • 1970-01-01
    • 2022-01-07
    • 2023-04-10
    相关资源
    最近更新 更多