Почему я не могу превратить этот результат запроса Redis прямо в хеш? - PullRequest
1 голос
/ 12 декабря 2011

Это смущает меня без конца. Почему я не могу выполнить эту операцию непосредственно над запросом?

(rdb:1) $redis.zrange(key(p_id, range), 0, -1, {withscores: true})
["2008", "15769"]

(rdb:1) Hash["2008", "15769"]
{"2008"=>"15769"}

(rdb:1) Hash($redis.zrange(key(p_id, range), 0, -1, {withscores: true}))
NoMethodError Exception: undefined method `Hash' for Player:Module

(rdb:1) Hash[$redis.zrange(key(p_id, range), 0, -1, {withscores: true})]
{}

1 Ответ

3 голосов
/ 12 декабря 2011

Вы должны распаковать аргументы:

Hash[*$redis.zrange(key(p_id, range), 0, -1, {withscores: true})]

Hash#[] также принимает массив пар, поэтому, если результатом всегда является пара:

Hash[[$redis.zrange(key(p_id, range), 0, -1, {withscores: true})]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...