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

四个变量获取数据,所以它起作用了。
但是当我尝试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 回答