request.env["omniauth.auth"] returns 如果不作为参数调用则为零
request.env["omniauth.auth"] returns nil if not called as argument
我正在尝试使用 facebook 进行简单的 omniauth 调用。如果我像这样捕获请求哈希,一切正常:
def facebook
user = User.from_facebook(request.env["omniauth.auth"])
if user.persisted?
...
else
...
end
end
但是如果我尝试将请求哈希保存在变量中,我会得到 request = nil。例如:
def facebook
omni_request = request.env["omniauth.auth"]
user = User.from_facebook(omni_request)
if user.persisted?
...
else
...
end
end
上面的例子失败了,因为 request 是 nil,我不能对 nil 的东西调用 env。
有谁知道为什么在 from_facebook
class 方法之外调用时 request 会是 nil?
第三行应该是:user = User.from_facebook(omni_request) ?
我正在尝试使用 facebook 进行简单的 omniauth 调用。如果我像这样捕获请求哈希,一切正常:
def facebook
user = User.from_facebook(request.env["omniauth.auth"])
if user.persisted?
...
else
...
end
end
但是如果我尝试将请求哈希保存在变量中,我会得到 request = nil。例如:
def facebook
omni_request = request.env["omniauth.auth"]
user = User.from_facebook(omni_request)
if user.persisted?
...
else
...
end
end
上面的例子失败了,因为 request 是 nil,我不能对 nil 的东西调用 env。
有谁知道为什么在 from_facebook
class 方法之外调用时 request 会是 nil?
第三行应该是:user = User.from_facebook(omni_request) ?