私はomniauthとdeviseを使用して、ユーザーのFacebookアカウントでログインしていますが、すべてが機能しますが、ハッシュからユーザーの電子メールを取得しようとすると、次のエラーが発生します。
NoMethodError in AuthenticationsController#create
undefined method `id' for "/":String
エラーの完全なログは次のとおりです:http://pastie.org/1698569
エラーがなくなり、更新後に正常にログインできるようになります。
編集:私の認証コントローラーの22行目であることがわかりました
sign_in_and_redirect_to(:user, root_path)
このメソッドを実行した後、何らかの理由で:userにサインインできません
def apply_facebook(omniauth)
if (extra = omniauth['extra']['user_hash'] rescue false)
self.email = (extra['email'] rescue '')
end
end
ただし、そのメソッドを実行しない場合は、sign_in_and_redirect_toで問題なく実行できます。
これが私のコントローラー/モデルですhttp://pastie.org/1698453
本当に助けてくれてありがとう