给定以下网址: http://example.com?arr[]=hello&arr[]=to&arr[]=you
我能否相信以下事实:
params[:arr] == ['hello', 'to', 'you']
?
我问是因为我有一些额外的数据将随请求一起发送,这些数据需要映射到 params[:arr] 中的每个值。
最佳答案
是的,他们是。
好吧,也许从解析 URL 参数的代码中证明会很方便(我从示例中省略了一些代码):
#
# 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
好吧,您应该自己看一下,但如您所见,关键部分是将值简单地添加到数组的位置 - 此操作将保持顺序。
关于ruby-on-rails - rails 中的数组参数是否保证按照它们在 url 中出现的顺序排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822905/