Получение хеша с символом в качестве ключей для монго в рельсах - PullRequest
4 голосов
/ 26 февраля 2011

Драйвер Mongo ruby, похоже, помещает ваши результаты в хеш со строками в качестве ключей. Есть ли способ сказать ему, чтобы вместо этого преобразовать ключи в символы?

Ответы [ 2 ]

6 голосов
/ 26 февраля 2011

Согласно FAQ , несмотря на то, что в Mongo есть тип символа и вы можете хранить символы в значениях, формат BSON указывает, что ключи должны быть строками.

4 голосов
/ 26 февраля 2011

Если у вас есть Hash, для которого заданы строки, и вы хотите иметь возможность использовать Symbol s в качестве ключей для доступа к его значениям, вы можете использовать HashWithIndifferentAccess.Если вы не используете Rails, вы можете получить этот класс через ActiveSupport gem.

my_hash = { 'name' => 'Joe', 'email' => 'joe@schmoe.com' }
my_hash = HashWithIndifferentAccess.new my_hash
puts my_hash[:name] # "Joe"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...