[英]why does heroku change the order of hashes?
对于我的生活,我无法弄清楚这一点。
如果我在本地开发/生产中有这个:
字段 = {:name => {...}, :description => {...}, :amount => {.... } }
很好,我遍历我的哈希并打印字段名称,就像我声明它的方式一样。
heroku中,打印顺序不同?? 我完全不知道为什么,我也不知道为什么 heroku 以不同的顺序打印它们。
那有意义吗?
编辑:天哪,它让我发疯。 我实际上是在我的模板中执行此操作,对我的变量进行排序,但出于某种奇怪的原因,它仍然以 heroku 只能理解的方式出现。
- @form_columns = @form_columns.sort_by do |i|
- if i[1][:rank].nil?
- i[1][:rank] = rank
- i[1][:rank]
- rank = rank + 1
这就是我循环的方式:
请理解我的本地生产/开发服务器没有问题。
Hash 中的键顺序不能保证与插入的顺序相同,在 Ruby 1.8
这种行为在 Ruby 1.9 中有所不同,其中保留了顺序。
http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/
您使用的是 ruby 1.8 吗?
如果您出于某种原因必须使用 Ruby 1.8,那么您可以通过在 Rails ActiveSupport
中使用OrderedHash
来获得订购的 hash。
要查看您在 Heroku 上使用的堆栈:
heroku stack
并迁移到 1.9.2:
heroku stack:migrate bamboo-mri-1.9.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.