Rails是否维护多个URL数组参数的排序

时间:2016-01-11 21:05:44

标签: ruby-on-rails ruby http url

我有多个列表,我希望将其作为GET请求中的参数传递给Rails服务: " NUM [] = 1&安培;让[] =一个试验#[] = 2及让[] = B试验#[] = 3及让[] = 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数组元素的顺序?

2 个答案:

答案 0 :(得分:3)

Param解析实际上是由机架处理而不是由rails处理。数组参数按接收顺序附加,因此在当前版本中是,将保持订单。我不相信嵌套对象通过查询参数的正式标准,它似乎也没有在机架中具体记录。所以,是的它目前有效,似乎并不能保证它总能像那样工作。这是一篇简短的文章,讨论了params解析如何工作http://codefol.io/posts/How-Does-Rack-Parse-Query-Params-With-parse-nested-query

答案 1 :(得分:1)

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