Ruby on rails Rails是否维护多个URL数组参数的顺序

Ruby on rails Rails是否维护多个URL数组参数的顺序,ruby-on-rails,ruby,http,url,Ruby On Rails,Ruby,Http,Url,我有多个列表要作为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

我有多个列表要作为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数组元素在其中接收的顺序?

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

参数解析实际上由rack而不是rails处理。数组参数按接收顺序追加,因此在当前版本中,顺序将保持为“是”。我不相信有一个通过查询参数传递嵌套对象的正式标准,而且在rack中也没有明确的文档记录。所以,是的,它目前可以工作,但似乎不能保证它总是这样工作。这里有一篇短文讨论参数解析是如何工作的

尽管
params[:num]
将是
[“1”、“2”、“3”]
params[:let]
将是
[“a”、“b”、“c”]