【问题标题】:Does Rails maintain ordering for multiple URL array parametersRails 是否维护多个 URL 数组参数的顺序
【发布时间】:2016-01-11 21:05:44
【问题描述】:

我有多个列表,我想将它们作为 GET 请求中的参数传递给 Rails 服务: "num[]=1&let[]=a&num[]=2&let[]=b&num[]=3&let[]=c"

在轨道末端,我想收到

#Good!!!
nums = params[:num] #[1,2,3]
lets = params[:let] #[a,b,c]

而不是

#Bad....
nums = params[:num] #[1,2,3]
lets = params[:let] #[c,b,a]

所以“1”可以与“a”相关联,“2”可以与“b”相关联,等等。Rails 会保持接收 URL 数组元素的顺序吗?

【问题讨论】:

  • 订单将保持不变,尽管params[:num] 将是["1", "2", "3"]params[:let] 将是["a", "b", "c"]

标签: ruby-on-rails ruby http url


【解决方案1】:

参数解析实际上是由 rack 而不是由 rails 处理的。数组参数按接收顺序附加,因此在当前版本中是的,顺序将保持不变。我不相信嵌套对象通过查询参数传递的正式标准,而且它似乎也没有在 rack 中专门记录。所以,是的,它目前可以工作,似乎不能保证它会一直这样工作。这是一篇简短的文章,讨论了参数解析的工作原理http://codefol.io/posts/How-Does-Rack-Parse-Query-Params-With-parse-nested-query

【讨论】:

    【解决方案2】:

    是的,当然。它是一个数组,因此它的顺序与 URL 中指定的顺序相同。

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2013-10-20
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多