почему героку меняет порядок хэшей? - PullRequest
1 голос
/ 30 апреля 2011

за всю свою жизнь я не смог бы понять это.

, если у меня есть это в моем местном dev / production:

fields = {: name => {...},: description => {...},: amount => {....}}

хорошо, я перебираю свои хэши и печатаю имя поля так же, как я его объявил.

В героку последовательность отличается в печатном порядке ??Я совершенно не знаю, почему, и я не могу понять, почему heroku печатает их в другом порядке.

это имеет смысл?

Редактировать: OMG, это сводит меня с ума.Я на самом деле делаю это в моем шаблоне, сортируя свою переменную, но по какой-то странной причине она все еще выходит в манере, которую понимает только героку.

- @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 do | column_name |

Пожалуйста, поймите, что на моем локальном производственном / dev сервере нет проблем.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2011

Если вам по какой-то причине нужно использовать Ruby 1.8, вы можете получить заказанный хеш, используя OrderedHash в Rails ActiveSupport.

Чтобы узнать, какой стек вы используете в Heroku:

heroku stack

и перейти на 1.9.2:

heroku stack:migrate bamboo-mri-1.9.2
2 голосов
/ 30 апреля 2011

Порядок ключей в хэше не гарантируется равным порядку, в котором они были вставлены, в Ruby 1.8

Это поведение отличается в Ruby 1.9, где порядок сохраняется.*http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/

Вы используете ruby ​​1.8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...