簡體   English   中英

為什么 heroku 會改變哈希的順序?

[英]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 

這就是我循環的方式:

  • @form_columns.each 做 |column_name|

請理解我的本地生產/開發服務器沒有問題。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM