0

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 になる理由を知っている人はいますか?

4

1 に答える 1