我正在使用名爲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