我正在使用名为omniauth-facebook的宝石,我成功实现了Facebook登录验证。为什么不在这种情况下调试工作?
它看起来不错,但它不会将整个对象的数据传递给视图。它只是说无。
当使用'debug'或'inspect'时它应该显示一系列的东西。它以某种方式显示session [:name]的内容。
控制器
class SessionsController < ApplicationController
def create
@auth = request.env["omniauth.auth"]
session[:oauth_token] = @auth.credentials.token
session[:username] = @auth.extra.raw_info.username
session[:name] = @auth.extra.raw_info.name
redirect_to bookd_url, :notice => "Signed in!"
end
end
查看
<% if signed_in? %>
<%= @auth.inspect %>
<%= debug @auth %><br />
<%= session[:name] %>
<% end %>
输出HTML
nil
---
...
John
'@ auth'的值是什么? - 你可以尝试在调试erb标签之前放入'<%= @ auth.inspect%>'吗? –
@MaxWilliams感谢您的评论。它返回nil。 – HUSTEN
这太奇怪了,因为如果我在视图中编码'@ auth.extra.raw_info.name'它会返回正确的名称。 – HUSTEN