0

これは、承認後にユーザーの基本情報を取得するための私のコードです:

basic_info = request.env['omniauth.auth'].extra.raw_info

first = basic_info.first_name
last = basic_info.last_name 
email = basic_info.email 
id = basic_info.id

4 つの変数がデータを取得するため、機能します。しかし、コマンドを
実行しようとすると、次のようになります:basic_info.inspect

「#」

何故ですか?すべての値をダンプすべきではありませんか?

4

1 に答える 1

1

Singh が彼のコメントで提案したように、このto_yamlメソッドを使用して、ネストされたハッシュのハッシュ内にあるものを確認する必要があります。私は通常、該当するコントローラーに次のコードを入れます。

raise request.env['omniauth.auth'].to_yaml

ログインしようとすると、コントローラーは yaml をレンダリングするだけです。

編集: Rails 4 が better_errors gem を使用するようになったため、omniauth ハッシュを検査するこの方法はうまく機能しなくなりました。より良い方法は次のとおりです。

render :text => "<pre>" + env["omniauth.auth"].to_yaml and return
于 2012-11-05T22:48:10.987 に答える