Получить хеш-ключ и преобразовать в строку ruby - PullRequest
11 голосов
/ 10 января 2012

Пример хэша

hash = {:key => ["val1", "val2]}

Когда я делал это на рельсах 3.0.7, все было хорошо.

> hash.keys.to_s
 => "key"
> hash[hash.keys.to_s]
 => ["val1", "val2"]

Но если я сделаю это с рельсами 3.1.3, это не так.

> hash.keys.to_s
 => [\"key\"]
> hash[hash.keys.to_s]
 => nil

Это из-за изменения версии Rails? и Есть ли другой способ превратить ключ хеша в строку, которая работает с обеими версиями (или с rails 2 тоже)?

Ответы [ 2 ]

17 голосов
/ 10 января 2012

Вы обновили Ruby и Rails?Я думаю, что это изменение между 1,8 и 1,9

Попробуйте hash.keys.first.to_s (если всегда есть только одна клавиша) или hash.keys.join

3 голосов
/ 10 января 2012

Вам просто нужно преобразовать его в символ вместо строки, которая является более правильной:

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