对于我的生活我无法理解这一点。
如果我在我的本地开发/制作中有这个:
fields = {:name => {...},:description => {...},:amount => {....}}
它很好我循环我的哈希并打印字段名称就像我宣布的那样。
在heroku中,序列的打印顺序不同?我完全不知道为什么,我无法弄清楚为什么heroku以不同的顺序打印它们。
这有意义吗?
编辑:OMG让我疯狂。我实际上是在我的模板中进行此操作,对我的变量进行排序但是对于一些非常奇怪的原因,它仍然以heroku只能理解的方式出现。- @form_columns = @form_columns.sort_by do |i|
- if i[1][:rank].nil?
- i[1][:rank] = rank
- i[1][:rank]
- rank = rank + 1
这就是我顺便循环的方式:
请理解我的本地生产/开发服务器没有问题。
答案 0 :(得分:2)
Hash中的键的顺序不能保证等于插入的顺序,在Ruby 1.8中
在Ruby 1.9中,这种行为是不同的,其中保留了订单。
http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/
您使用的是ruby 1.8吗?
答案 1 :(得分:2)
如果由于某种原因必须使用Ruby 1.8,那么您可以在Rails OrderedHash
中使用ActiveSupport
获取有序哈希。
要查看您在Heroku上使用的stack:
heroku stack
并迁移到1.9.2:
heroku stack:migrate bamboo-mri-1.9.2