私はFacebookプロジェクトで認証するためにomniauthを使用しています。レールプロジェクトomniauthを使用しています - [n]を評価することに固執しました[]エラー
また、ユーザーの現在の都市をomniauthから取得しようとしていますが、ユーザーが現在の都市をFacebookに持っていれば素晴らしい結果が得られます。
エクストラ: user_hash: 名:ジェフ・ターナー 場所: 名:オークランド、カリフォルニア
が、ユーザーは何も持っていないとき、私はその値
current_city = user_data['location']['name']
を設定カントエラー: 期待していないときにオブジェクトがありません。 ActiveRecord :: Baseのインスタンスが必要な場合があります。 nilを評価しながら エラーが発生しました。[]
を私がnil条件をテストしようとした場合、私は、私は
if user_data['location']['name'].blank? == false
current_city = user_data['location']['name']
end
それらの属性とは値が偶数バックomniauth
から来ていないことがわかります(user_data ['location'] ['name']。空白?)
まだcantを評価していません。
私はレールがかなり新しいので、私はちょうど明らかに何かを逃したと思う。
更新
これは私がそれを変えてしまった、それがうまく働いたものです。
current_city = auth.fetch('location', []).fetch('name', nil)
fetchを使用する:それは
if user_data['location'].nil? == false
if user_data['location']['name'].nil? == false
current_city = user_data['location']['name']
end
end
応答をありがとう、それはあまりにもそれを修正するように見えます。私たちは昨夜それを変更し終わり、私はこれを更新することを忘れました。 – jtwg
それは大丈夫です!フェッチは本当に便利で、それは素晴らしいツールです。:) – fuzzyalej