Cet article concerne uniquement la création d'une fonction de connexion avec une application WEB qui utilise Rails. Mémorisons cela dans votre corps afin que vous puissiez le faire à une vitesse explosive!
Si vous ne faites pas cela, rien ne commencera! Exécutez la commande suivante à partir du terminal.
% rails _5.2.3_nouveau nom d'application-d mysql
Une fois que vous avez créé un modèle d'application avec la commande ci-dessus, accédez au répertoire de l'application.
%nom de l'application cd
Ouvrez le Gemfile dans un éditeur et ajoutez un modèle. devise est un joyau qui facilite la création des fonctions nécessaires à l'authentification des utilisateurs. De plus, cette fois, j'utilise haml au lieu d'erb, donc j'installe également un gem qui convertit les fichiers erb en haml.
gem 'devise'
gem "haml-rails"
Ajoutez un appareil au Gemfile et installez-le!
% bundle install
Une fois l'installation terminée, convertissez le fichier erb en haml.
% rails haml:erb2haml
Après avoir terminé le travail de conversion ci-dessus, créez un fichier de configuration de périphérique.
% rails g devise:install
Ensuite, le fichier de paramètres suivant est créé. config/initializers/devise.rb config/locales/devise.en.yml
Exécutez ensuite la commande suivante pour créer un modèle utilisateur.
% rails g devise user
Le fichier de routage contiendra désormais également le routage de l'appareil.
Rails.application.routes.draw do
devise_for :users
end
La base de données utilisée par cette application n'a pas encore été créée, alors créons-la.
% rails db:create
Je pense que le fichier de migration a été créé lors de la création du modèle, alors migrons xxxxxxxxxxxxxx_devise_create_users.rb
% rails db:migrate
Ceci termine les paramètres autour de la base de données.
Ensuite, créez un fichier de vue pour la page supérieure. Faisons une piste pour vous connecter, vous enregistrer et vous déconnecter ici Cette fois, nous allons créer index.html.haml dans app / views / posts en supposant que l'utilisateur peut publier une sorte de messages. Après l'installation de devise, vous pouvez utiliser une méthode d'assistance appelée user_signed_in, séparons donc l'affichage lorsque vous n'êtes pas connecté et lorsque vous êtes connecté.
%header
- if user_signed_in?
%div
= link_to "Se déconnecter", destroy_user_session_path, method: :delete
- else
%div
= link_to "S'identifier", new_user_session_path
= link_to "s'inscrire", new_user_registration_path
Lorsque la page supérieure est créée, ajoutez le routage à routes.rb.
Rails.application.routes.draw do
devise_for :users
root to: 'posts#index'
end
Pour le moment, si vous essayez d'ouvrir la page principale, vous obtiendrez l'erreur suivante, alors créez un contrôleur.
% rails g controller posts
Maintenant, vous avez un contrôleur! Vous devriez pouvoir ouvrir la page supérieure en ajoutant l'action d'index au contrôleur créé.
class PostsController < ApplicationController
def index
end
end
C'est un écran terne, mais si tout se passe bien, il devrait ressembler à celui ci-dessous.
Ensuite, connectez-vous et créez un nouvel écran d'inscription. Exécutez la commande suivante pour créer une vue pour un nouvel enregistrement et une nouvelle connexion.
% rails g devise:views
.Nouvel écran d'inscription app/views/devise/registrations/new.html.erb
·Écran de connexion app/views/devise/sessions/new.html.erb
Cette fois, il sera créé avec haml, alors exécutons à nouveau la commande suivante pour convertir erb en haml.
% rails haml:erb2haml
Si vous pouvez le faire jusqu'à présent, vous devriez pouvoir vous inscrire, vous connecter et vous déconnecter, alors répétons-le immédiatement. ・ Cliquez sur nouvelle inscription
・ Entrez votre adresse e-mail et votre mot de passe et cliquez sur «s'inscrire»
・ Accédez à la page d'accueil et déconnexion s'affichera. Cliquez sur Déconnexion.
・ J'ai pu me déconnecter, alors cliquez sur Connexion.
・ Entrez votre adresse e-mail et votre mot de passe et cliquez sur Connexion
-La transition vers la page d'accueil et la déconnexion sont affichées.
Cela semble gênant car le style n'est pas correct, mais pour le moment, l'implémentation côté serveur est terminée! Veuillez vous référer à cet article et visez une mise en œuvre explosive!
Recommended Posts