ruby-on-rails - rails 中的数组参数是否保证按照它们在 url 中出现的顺序排列?

标签 ruby-on-rails ruby url parameters

给定以下网址: 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/

相关文章:

ruby - 找不到 RubyGem haml

url - 是否可以使用 mod_rewrite 用不同的域名对域名进行 URL 屏蔽?

javascript - 如何从div中删除最后一个元素?

ruby-on-rails - 通过 ruby​​ on Rails 中的回形针根据用户名的第一个字符添加缺失的图像

ruby-on-rails - ruby on rails 参数没有被保存

java - 在 URL 中传递分号作为参数

php - 如何捕获指向不存在的页面/文件的 URL?

javascript - Rails 'nil' 不是与 ActiveModel 兼容的对象。它必须实现 :to_partial_path. ajax

sql - sql查询中的动态列

ruby-on-rails - Devise_token_auth 冲突?