Я использую omniauth в своем проекте rails для аутентификации на Facebook.
Я также пытаюсь получить текущий город пользователя от omniauth, и это прекрасно работает, когда у него есть текущий город в Facebook.
дополнительно:
user_hash:
имя: Джефф Тернер
место нахождения:
название: Окленд, Калифорния
но когда у пользователя ничего нет, я не могу установить это значение
current_city = user_data['location']['name']
ошибка:
У вас есть нулевой объект, когда вы этого не ожидали!
Возможно, вы ожидали экземпляр ActiveRecord :: Base.
Произошла ошибка при оценке nil. []
Я вижу, что никакие значения с этими атрибутами не возвращаются из omniauth
если я попытаюсь проверить состояние ноль
if user_data['location']['name'].blank? == false
current_city = user_data['location']['name']
end
Кажется, я получаю ту же ошибку в первой строке (user_data ['location'] ['name']. Blank?)
все еще не могу оценить ноль.
Я довольно новичок в рельсах, так что я надеюсь, что пропустил что-то очевидное.
Обновление
это то, что я в итоге изменил, и он работал нормально. ответ ниже выглядит так, как будто это будет работать
if user_data['location'].nil? == false
if user_data['location']['name'].nil? == false
current_city = user_data['location']['name']
end
end