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
クラスメソッドの外で呼び出されたときに request が nil になる理由を知っている人はいますか?