Implémentation de la fonction de connexion Ruby on Rails (édition de devise)

Aperçu

Implémenter la fonction de connexion en utilisant gem'devise ' Remplacez la connexion par nom et mot de passe par mot de passe et par courrier électronique.


Cet objectif et mon environnement


la mise en oeuvre

Préparation

Gemfile


#Ajouté en bas
gem 'devise'

Exécutez la commande sous le terminal après avoir édité le Gemfile

Terminal


bundle install
rails g devise:install
rails g devise User
rails db:migrate

Cependant, cette fois, j'ai décidé de me connecter par nom, alors modifiez le fichier de migration avant rails db: migrate.

db/migrate


#t.timestamps null:Ajouter ci-dessus false
t.string :name

Créer une vue

Terminal


rails g devise:view

À propos, dans le fichier créé, les inscriptions sont une nouvelle inscription et les sessions sont un fichier lié à la connexion.

:app/views/devise/sessions/new.html.erb


<h2>Log in</h2>

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
  </div>

(Omis car il n'y a pas de changement après cela)
<% end %>
<%= render "devise/shared/links" %>

Remplacez l'email par nom et email_field par text_field

:app/views/devise/registrations/new.html.erb


#Ajouté au-dessus de la balise email div
<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
</div>

Autoriser les paramètres

app/controllers/application_controller.rb


class ApplicationController < ActionController::Base
    before_action :configure_premitted_parameters, if: :devise_controller?

        protected

        def configure_premitted_parameters
            devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :email])
            devise_parameter_sanitizer.permit(:sign_in, keys: [:name])
        end
end

Presque terminé avec ce

Production d'écran après connexion

Terminal


rails g controller home top

:app/views/home/top.html.erb


<h1>Home#top</h1>
<%= link_to "Se déconnecter", destroy_user_session_path, method: :delete %>

Je veux pouvoir me déconnecter, j'utilise donc la méthode link_to pour créer un bouton de déconnexion. Ajoutez ce qui suit à application_controller.rb

app/controllers/application_controller.rb


#Ajouter en haut de protégé
def after_sign_in_path_for(resource)
    home_top_path
end

cinfig/initializers/devise.rb


#Décommentez ce qui suit à la ligne 49
config.authentication_keys = [:email]
#Changer l'e-mail ci-dessus en nom
config.authentication_keys = [:name]

Notez que vous ne pouvez pas vous connecter par nom sans cela!

c'est tout.

Recommended Posts

Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
Implémentation de la fonction de connexion Ruby on Rails (Session)
[Ruby on rails] Implémentation d'une fonction similaire
[Ruby on Rails] Implémentation de la fonction de commentaire
[Rails] Ajout de la fonction de commentaire Ruby On Rails
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
Paramètres de validation pour la fonction de connexion Ruby on Rails
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
[Rails] Implémentation de la fonction de catégorie
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[rails] Implémentation de l'écran de connexion dans la devise
[Ruby on Rails] Introduction de la fonction de pagination
[Rails] Implémentation de la fonction de prévisualisation d'image
Connaissance de base de Ruby on Rails
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction d'exportation CSV
[Ruby on Rails] Fonction de sortie CSV
Ruby On Rails conçoit un conflit de routage
[Ruby on Rails] DM, fonction de chat
Une note sur la fonction de départ de Ruby on Rails
[Ruby on Rails] Implémenter la fonction de connexion par add_token_to_users avec l'API
[Rails] Implémentation d'une nouvelle fonction d'enregistrement au format assistant à l'aide de devise
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Fonction de recherche (non sélectionnée)
[Rails] Restrictions de fonction dans l'appareil (connexion / déconnexion)
Méthode d'installation de Ruby on Rails [édition Mac]
Rails Ajout d'une fonction de connexion facile et facile
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (1)
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (3)
[Ruby on Rails] Notation japonaise de l'erreur
Explication de Ruby sur rails pour les débutants ①
[Ruby on Rails] Suppression logique (fonction de retrait)
[Rails] Implémentation de la fonction de recherche en utilisant le ransack de gem
[Ruby on Rails] Jusqu'à l'introduction de RSpec
[Rails] Implémentation de la fonction d'agrandissement d'image à l'aide de lightbox2
Recommandation de classe de service dans Ruby on Rails
Ruby on Rails ~ Principes de base de MVC et du routeur ~
[Ruby on Rails] Un mémorandum de modèles de mise en page
Ruby on Rails Comment implémenter la saisie d'adresse automatique
[Ruby on Rails] Fonction de post-édition (mise à jour, suppression)