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

Я использую Facebook-api graph-api и загружаю ключи регистрации.В большинстве мест есть этот ключ регистрации, но время от времени я нахожу место без проверок, в котором нет этого ключа.Есть ли способ проверить nil и не дать следующему коду взорвать мои очень большие рейки?

graph.get_object(5811874893).fetch("checkins")
KeyError: key not found: "checkins"


x =  graph.get_object(x.place_id)["checkins"]

Основываясь на отзывах ниже, у меня возникает следующая ошибка с той же темой: проверка nil.Как бы вы справились с этим?

nil can't be coerced into Fixnum

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Вы пытались узнать, доступен ли has_key?, или использовать graph.get_object(5811874893)["checkins"] вместо graph.get_object(5811874893).fetch("checkins")?

Чтобы вернуть 0, если нет чеков, выполните

graph.get_object(5811874893).fetch("checkins") { 0 }

Блок после fetch указывает, что делать, если "checkins" не существует.

1 голос
/ 18 мая 2011

Почему бы тебе просто не сделать

graph.get_object(5811874893)["checkins"]

Если вы получите доступ к хешу с помощью [], ошибка не возникнет, и вы получите нулевое значение (до тех пор, пока хеш не установит его в другое значение).

...