[RUBY] twitter-4 Auswahl von Fehlern mit der von omniauth gem erstellten Twitter-Anmeldefunktion und wie man damit umgeht

Im Folgenden finden Sie vier häufig auftretende Fehler und deren Behandlung bei der Implementierung der Benutzerverwaltungsfunktion durch Twitter-Anmeldung in Ruby On Rails.

Überprüfung der E-Mail-Adresse

Verwenden Sie das Gerät als Basis für Benutzerverwaltungsfunktionen. Verwenden Sie das Juwel omniauth-twitter, um die Twitter-Anmeldefunktion zu erstellen.

Gemfile


gem 'devise' 
gem 'omniauth' 
gem 'omniauth-twitter'
bundle install

Referenz: Senden Sie eine E-Mail, wenn Sie sich bei devise registrieren Verfahren zum Implementieren der Benutzerauthentifizierung mit Devise + OmniAuth in Rails

Fehler 1: Ich erhalte eine Fehlermeldung, wenn ich versuche, mich anzumelden

NameError in Devise::RegistrationsController#create\_ \_undefined local variable or method \`confirmed\_at' for #User: Did you mean? confirmed?

Lösung

Fügen Sie dem Benutzermodell die Spalte #confirmable hinzu

user.rb


devise :confirmable

Fehler 2: Fehlender Host zum Verknüpfen!

Missing host to link to! Please provide the :host parameter, set default\_url\_options\[:host\], or set :only\_path to true\_ 

Lösung

Geben Sie die Host-URL unter config> environment> development.rb an

/config/environments/development.rb


  host = 'samplehost'
  Rails.application.routes.default_url_options[:host] = host

Referenz: Wenn ein Host fehlt, zu dem ein Link erstellt werden soll! Erscheint auf Schienen. Einstellungen zum Zusammenstellen von URLs im Modell

Fehler 3: Nach dem Drücken der neuen Registrierungs- / Anmeldeschaltfläche wird der Anmeldebildschirm erneut angezeigt (kehrt zur Anmeldeseite zurück).

Dies ist ein Fehler, der dadurch verursacht wird, dass Benutzerinformationen nicht in der Datenbank registriert werden können.

Lösung

  1. Fügen Sie den Prozess ein, um die E-Mail-Adresse automatisch festzulegen Referenz: Datensätze werden nicht gespeichert, auch wenn die Omniauth-Twitter-Authentifizierung in Devise abgeschlossen ist
  2. Ignorieren Sie zunächst die E-Mail-Adresse Referenz: Warum bestehen? Ist falsch.
  3. Es gibt ein Muster wie das Entfernen von: validatable from devise.rb. Referenz: [Devise / Omniauth-Login mit Twitter - Validierung fehlgeschlagen: E-Mail darf nicht leer sein](https://stackoverflow.com/questions/10374827/devise-omniauth-login-with-twitter-validation-failed-email-cant] -be-blank)

1 wird empfohlen.

Fehler 4: Benutzer-ID kann nicht abgerufen werden

undefined method \`id' for nil:NilClass 

Fehlerursache: Sie können sich nicht anmelden und Ihre Benutzer-ID ist null. Referenz: undefinierte Methode `id'for nil: About NilClass

Lösung

Überprüfen Sie, ob current_user einen Wert hat

Recommended Posts

twitter-4 Auswahl von Fehlern mit der von omniauth gem erstellten Twitter-Anmeldefunktion und wie man damit umgeht
[Ruby] 5 häufige Fehler, die beim Schaben mit Selen auftreten und wie man damit umgeht
Umgang mit verschiedenen Versionen von rbenv und Ruby
Java8 / 9-Anfänger: Streamen Sie API-Suchtpunkte und wie Sie damit umgehen
Booten nach Umgebung mit Spring Boot of Maven
Umgang mit dem Fehler FEHLER: Während der Ausführung von gem ... (Gem :: FilePermissionError)
Umgang mit Bundler :: Dsl :: DSLError durch Umschreiben von gemfile
Verwendung des Zertifikats und des privaten Schlüssels, die durch die BASIC-Authentifizierung von Docker mit AWS ALB erstellt wurden
[Rails] Implementierungsverfahren der Funktion zum Markieren von Posts ohne Gem + die Funktion zum Eingrenzen und Anzeigen von Posts nach Tags