[RUBY] twitter-4 sélections d'erreurs avec la fonction de connexion Twitter créée par omniauth gem et comment les traiter

Voici quatre erreurs courantes et comment les traiter lors de la mise en œuvre de la fonction de gestion des utilisateurs par connexion Twitter dans Ruby On Rails.

Vérification de l'adresse e-mail

Utilisez le joyau de la devise comme base des fonctionnalités de gestion des utilisateurs. Utilisez la gemme omniauth-twitter pour créer la fonction de connexion Twitter.

Gemfile


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

référence: Envoyer un e-mail lors de l'inscription avec devise Procédure pour implémenter l'authentification des utilisateurs avec Devise + OmniAuth in Rails

Erreur 1: j'obtiens une erreur lorsque j'essaie de m'inscrire

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

Solution

Ajoutez la colonne #confirmable au modèle User

user.rb


devise :confirmable

Erreur 2: hôte manquant vers lequel se connecter!

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

Solution

Spécifiez l'URL de l'hôte dans config> environment> development.rb

/config/environments/development.rb


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

Référence: En cas d'absence de l'hôte vers lequel se connecter! Apparaît sur les rails. Paramètres d'assemblage des URL dans le modèle

Erreur 3: après avoir appuyé sur le nouveau bouton d'enregistrement / connexion, l'écran de connexion du périphérique s'affiche à nouveau (retourne à la page de connexion)

Il s'agit d'une erreur due à l'impossibilité d'enregistrer les informations utilisateur dans la base de données.

Solution

  1. Insérez le processus pour définir automatiquement l'adresse e-mail Référence: Les enregistrements ne sont pas stockés même si l'authentification twitter omniauth est terminée dans Devise
  2. Ignorez l'adresse e-mail en premier lieu Référence: Pourquoi persister? Est-ce faux.
  3. Il existe un modèle tel que supprimer: validatable de devise.rb. Référence: [devise / omniauth login with twitter --validation failed: email cannot be blank](https://stackoverflow.com/questions/10374827/devise-omniauth-login-with-twitter-validation-failed-email-cant] -être-vide)

1 est recommandé.

Erreur 4: l'ID utilisateur ne peut pas être obtenu

undefined method \`id' for nil:NilClass 

Cause de l'erreur: vous ne pouvez pas vous connecter et votre ID utilisateur est nul. Référence: méthode indéfinie ʻid'for nil: About NilClass

Solution

Vérifiez si current_user a une valeur

Recommended Posts

twitter-4 sélections d'erreurs avec la fonction de connexion Twitter créée par omniauth gem et comment les traiter
[Ruby] 5 erreurs courantes qui ont tendance à se produire lors du scraping avec Selenium et comment les gérer
Comment gérer différentes versions de rbenv et Ruby
Java8 / 9 Beginners: Streaming API addiction points et comment les gérer
Comment démarrer par environnement avec Spring Boot de Maven
Comment gérer l'erreur ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError)
Comment gérer Bundler :: Dsl :: DSLError en réécrivant gemfile
Comment utiliser le certificat et la clé privée créés par l'authentification BASIC de Docker avec AWS ALB
[Rails] Procédure d'implémentation de la fonction pour taguer les posts sans gem + la fonction pour affiner et afficher les posts par tags