Tout d'abord, tout commence par l'installation de ce bijou. 
installer le dispositif
% gem'devise'
% bundle install
% rails g devise:install
Ceci termine l'installation de l'appareil.
rails g devise user
Un modèle utilisateur et un fichier de migration sont générés. 
 De plus, lorsque cette commande est exécutée, le routage de l'appareil est automatiquement défini dans config / routes.rb.
config/routes.rb
Rails.application.routes.draw do
  devise_for :users
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
rails g devise:views
Lorsque vous exécutez cette commande, elle générera automatiquement un fichier de vue de la fonction requise en un clin d'œil.
Cette fois, les informations suivantes seront envoyées à la table sur le nouvel écran d'inscription.
ruby:db/migrate/025412010...
lass DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :name,               null: false
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
      t.string :last_name,          null: false
      t.string :first_name,         null: false
      t.string :kana_last,          null: false
      t.string :kana_first,         null: false
      t.date   :birthday,           null: false
      ... (réduction)
Maintenant que nous avons décrit les informations que nous avons conçu le tableau à l'avance, nous pouvons migrer et compléter le tableau des utilisateurs.
% rails db:migrate
Le formulaire décrit dans le fichier app / views / devise / registrations / new.html.erb envoie une requête au serveur et l'enregistre dans le tableau, mais valide et définit les messages d'erreur pour enregistrer correctement les informations. ..
users.rbusers.rb
class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  validates :name, presence: true
  validates :email, presence: true
  #Variable VALIDE_PASSWORD_Remplacez l'option permettant de confondre 6 caractères alphanumériques demi-largeur ou plus dans REGEX
  VALID_PASSWORD_REGEX = /\A(?=.*?[a-z])[a-z\d]{6,}+\z/
  validates :password, presence: true, length: { minimum: 6 }, format: { with: VALID_PASSWORD_REGEX}
  #Décrivez l'option permettant à l'assistant d'entrer en hiragana, katakana et kanji pleine largeur
  validates :last_name, :first_name, presence: true, format: { with: /\A(?:\p{Hiragana}|\p{Katakana}|[---]|[un-龠])+\z/ }
  #Décrivez l'option de saisie en katakana pleine largeur
  validates :kana_last, :kana_first, presence: true, format: { with: /\A[\p{katakana}---&&[^ -~¡-゜]]+\z/ }
  validates :birthday, presence: true
end
Avec cela, les informations personnelles de l'utilisateur peuvent être enregistrées dans le formulaire ci-dessus au moment de la nouvelle inscription.
application.controller.rbruby:application.controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :configre_permitted_parameters, if: :devise_controller?
  def configre_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :last_name, :first_name, :kana_last, :kana_first, :birthday])
  end
end
Dans la méthode configure_permitted_parameters, qui ne fonctionne que lors du traitement du contrôleur lié à la devise, clés: Si la valeur après n'est pas saisie, elle peut être traitée de manière à ne pas être enregistrée. ** * Au fait, la devise peut recevoir un email et un mot de passe par défaut! ** **
À ce stade, tout ce que vous avez à faire est d'implémenter la fonction de connexion / déconnexion.
・ Modifier le fichier d'en-tête
devise/shared/header
#user_signed_in?Réglez pour que l'affichage change selon que vous êtes connecté ou non.
      <% if user_signed_in? %>
        <li><%= link_to "#{current_user.name}", class: "user-nickname" %></li>
        <li><%= link_to 'Se déconnecter', destroy_user_session_path , method: :delete, class: "logout"%> </li>
      <% else %>
        <li><%= link_to 'S'identifier', new_user_session_path, class: "login" %></li>
        <li><%= link_to 's'inscrire', new_user_registration_path, class: "sign-up" %></li>
      <% end %>
Vous pouvez obtenir le nom de l'utilisateur connecté à partir de la colonne DB avec link_to " # {current_user.name} ".
Vous pouvez maintenant vous connecter et vous inscrire en vous connectant à localhost: 3000 / users / sign_in ou users / sign_up.
Bien sûr, ce sont des modifications de fichiers liées à devie, veuillez donc préparer votre propre contrôleur et voir si vous pouvez utiliser ces fonctions depuis la page d'accueil.
Si vous obtenez une erreur, vous pouvez vous connecter en déconnectant et en reconnectant le serveur, veuillez donc l'essayer.
Ce sera la première sortie publique en tant que débutant, donc si vous avez une mauvaise compréhension ou si vous souhaitez faire plus comme ça, nous vous attendons toujours.
Recommended Posts