0

Ich folge die unten Tutorial von omniauth-facebook für die Konfiguration der Authentifizierungsmethode von Facebook in meiner Rails-Anwendung:Authentifizierungsfehler: omniauth

http://railscasts.com/episodes/360-facebook-authentication

Alles gut läuft aber nach Rückruf Ich bin immer folgende Fehlermeldung:

undefined method `from_omniauth' for #<Class:0x007ff05a58de30> 

und den Code-Schnipsel:

class SessionsController < ApplicationController 
    def create 
    user = User.from_omniauth(env["omniauth.auth"]) #Highligted line as red 
    session[:user_id] = user.id 
    redirect_to root_url 
    end 

Folgende ist meine session_controller Datei:

class SessionsController < ApplicationController 
    def create 
    user = User.from_omniauth(env["omniauth.auth"]) 
    session[:user_id] = user.id 
    redirect_to root_url 
    end 

    def destroy 
    session[:user_id] = nil 
    redirect_to root_url 
    end 
end 

Model (user.rb)

class User < ActiveRecord::Base 
    def self.from_omniauthsk(auth) 
    where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user| 
     user.provider = auth.provider 
     user.uid = auth.uid 
     user.name = auth.info.name 
     user.oauth_token = auth.credentials.token 
     user.oauth_expires_at = Time.at(auth.credentials.expires_at) 
     user.save! 
    end 
    end 
end 

Gem Ich verwende ist

gem 'omniauth-facebook' 

Antwort

1

Sie nur ein Tippfehler haben:

from_omniauthsk 

sollte

sein
from_omniauth