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].

Foi útil?

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
scroll top