Ich folgte Ryan Bates '/ RailsCasts Tutorial für Cookies Login und erinnere mich an Funktionalität in einer Anwendung, die ich erstelle.OmniAuth RailsCast (Folge 235) Problem mit Remind Me (Folge 274)
[Referenz: http://railscasts.com/episodes/274-remember-me-reset-password?view=comments] Ich wollte seine OmniAuth-Funktionalität für die gleiche Anwendung vorstellen.
[Referenz: http://railscasts.com/episodes/235-omniauth-part-1] Ich verwende nicht Devise. Ich lade die Twitter App-Seite korrekt, der Fehler tritt auf, wenn ich zurück zu meiner Anwendung umadressiere. Ich habe die Rückruf-URL in Twitter korrekt eingestellt.
Ich bekomme einen undefined method "authentications" for nil:NilClass
Fehler mit OmniAuth und meinem authentications_controller. Insbesondere meine Konsole lautet:
NoMethodError (undefined method authentications for nil:NilClass):app/controllers/authentications_controller.rb:9:in create'.
Hier ist der Authentifizierungen Controller-Code:
class AuthenticationsController < ApplicationController
def index
authentications = Authentication.all
end
def create
auth = request.env["omniauth.auth"]
current_user.authentications.create(:provider => auth['provider'], :uid => auth['uid'])
flash[:notice] = "Authentication was successful."
redirect_to authentications_url
end
Hier ist die current_user Hilfsmethode in meine Anwendungen-Controller.
private
def current_user
@current_user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
end
helper_method :current_user
Benutzer hat viele Authentifizierungen. Authentifizierungen gehören dem Benutzer.
Ich mag OmniAuth ermöglichen, mit Twitter zu arbeiten, so dass Benutzer durch die Vermeidung der Fehler mit ihrem Twitter-Account anmelden können Ich erhalte während meines current_user Code Aufrechterhaltung
Hilfe sehr geschätzt wird.