São parâmetros de matriz no rails garantido de ser na ordem em que aparecem na url?
-
26-09-2019 - |
Pergunta
Dada a seguinte url:http://example.com?arr []= 'hello' &arr[]=a&arr[]=você
Eu sou capaz de banco no fato de que:
params[:arr] == ['hello', 'to', 'you']
?
Eu pergunto porque eu tenho alguns dados adicionais que serão enviados com o pedido de que precisa ser mapeado para cada um dos valores em params[:arr].
Solução
Sim, eles são.
Bem, talvez uma prova de que o código onde os parâmetros de URL são analisados seria útil (eu omissos algum código de exemplo):
#
# file: ../rack-1.2.1/lib/rack/utils.rb
#
def normalize_params(params, name, v = nil)
# code ommited for simplicity...
if after == ""
params[k] = v
elsif after == "[]"
params[k] ||= []
# HERE IT IS!
params[k] << v
elsif
# code ommited for simplicity...
# ...
end
bem, você deve ter um olhar de si mesmo, mas como você pode ver, a parte crucial é onde os valores são simplesmente adicionadas à matriz - esta operação irá manter a ordem.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow