[RUBY] Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs

Introduire concevoir et mettre en œuvre facilement des fonctions de gestion des utilisateurs

Nous avons résumé comment implémenter la fonctionnalité de gestion des utilisateurs dans Rails à l'aide de gem design.

Présentation de la devise

Commencez par ajouter devise au fichier gem.

gemfile


gem 'devise'

Exécutez l'installation groupée ** et redémarrez le serveur. ** **

Créez ensuite un fichier de configuration de périphérique.

$ rails g devise:install

Créez un modèle utilisateur.

rails g devise user

À ce stade, le fichier de migration est généré en même temps que le modèle utilisateur, donc s'il y a une colonne à ajouter, décrivez-la avant de migrer.

○○_devise_create_users.rb


--réduction--
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :nickname,           null: false, default: ""
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
      t.string :family_name,        null: false, default: ""
      t.string :first_name,         null: false, default: ""
      t.string :read_family,        null: false, default: ""
      t.string :read_first,         null: false, default: ""
      t.date :birth,                null: false
--réduction--

L'email et le mot de passe doivent être joints par défaut, donc cette fois j'ai créé pour ajouter d'autres colonnes.

En passant, j'utilise le type de date lors de la préparation de la colonne de date de naissance, mais comme la valeur par défaut ne peut être définie qu'avec une constante, je n'ai pas défini la valeur par défaut cette fois.

Migrez lorsque vous êtes prêt.

$ rails db:migrate

Tout ce que vous avez à faire est de préparer le fichier de vue et vous êtes prêt à commencer.

Implémentation de l'inscription

Afin d'enregistrer des informations autres que l'adresse e-mail et le mot de passe lorsque l'utilisateur s'inscrit, il est nécessaire de les décrire dans application_controller.

application_controller.rb


class ApplicationController < ActionController::Base
  before_action :authenticate_user!, except: [:index]
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :family_name, :email, :first_name, :read_family, :read_first, :birth])
  end
end

Si vous passez à une page autre que lorsque vous êtes sur la page d'index, vous pouvez vous forcer à accéder à la page de connexion. J'ai écrit la méthode before_action: authenticate_user !.

Pour enregistrer des paramètres supplémentaires Before_action: écrivez la méthode configure_permitted_parameters.

Assurez-vous également de transmettre les variables d'instance de modèle et les chemins à la méthode form_with du fichier de vue.

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


---réduction---
<%= form_with class: 'registration-main', model: @user, url: user_registration_path,  local: true do |f| %>
---réduction---

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


---réduction---
<%= form_with class: 'registration-main',model: @user, url: user_session_path, local: true do |f| %>
---réduction---

Sans cela, cela ne fonctionnerait pas bien avec la table des utilisateurs.

Implémentation de la déconnexion

Ici, implémentons un bouton de déconnexion dans le fichier de vue avec la méthode link_to. Le point est de ne pas oublier d'écrire le chemin pour déconnecter la session utilisateur.

ruby:xxx.html.erb


<li><%= link_to 'Se déconnecter', destroy_user_session_path, method: :delete, class: "logout" %></li>

Comment changer la notation entre la connexion et l'invité

Lorsque vous êtes connecté, un bouton pour passer à Ma page et un bouton pour vous déconnecter s'affichent sur la page, Je vais également résumer la description afin que le nouveau bouton d'inscription et le bouton de connexion s'affichent lorsque vous n'êtes pas connecté (lorsque vous êtes un invité).

Utilisons la méthode user_signed_in? De la méthode helper. Écrivez ce qui suit dans le fichier de vue correspondant.

ruby:views/xxx.html.erb


<% if user_signed_in? %>
          <li><%= link_to current_user.nickname, root_path, 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 %>

Recommended Posts

Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs
Mettre en œuvre la fonctionnalité de gestion des utilisateurs à l'aide de Devise
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter la fonctionnalité de classement dans Rails
Comment installer jQuery dans Rails 6
Implémenter la fonction d'enregistrement des utilisateurs et la fonction d'enregistrement de l'entreprise séparément dans Rails concevoir
Comment mettre à jour les modifications utilisateur dans Rails Devise sans entrer de mot de passe
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
Mettre en œuvre des fonctions de gestion des utilisateurs dans un format d'assistant
Comment implémenter une fonctionnalité similaire dans Rails
[Rails] Ajouté dans le modèle: nom d'utilisateur non ajouté à la base de données
Présentation de Vue.js à Rails
Markdown implémenté dans Rails
Comment implémenter la connexion invité en 5 minutes sur le portefeuille de rails
Comment implémenter une fonctionnalité intéressante dans Ajax avec Rails
Implémenter la fonction d'application dans Rails
[Rails] Implémenter la fonction de recherche d'utilisateurs
Implémenter l'authentification LTI dans Rails
[Rails] Ajouter une colonne à concevoir
[Rails] Comment mettre en œuvre le scraping
Super facile en 2 étapes! Comment installer la devise! !! (version rails 5)
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Un moyen simple d'implémenter une fonction d'auto-introduction dans votre profil
[Rails] Comment utiliser l'appareil (Remarque)
J'ai essayé d'implémenter le traitement Ajax de la fonction similaire dans Rails
[Rails] Paramètre de délai d'expiration de session dans l'appareil
[rails] Implémentation de l'écran de connexion dans la devise
Jusqu'à l'introduction des polices dans Rails
Implémenter une fonction de connexion simple dans Rails
Implémenter un formulaire de contact dans Rails
Je veux ajouter un appareil dans Rails, mais je ne peux pas grouper l'installation
[Rails] Ajoutez des paramètres forts pour concevoir
[Rails] Comment mettre en œuvre le classement par étoiles
Essayez d'implémenter Yuma en Java
Implémenter la fonction de téléchargement CSV dans Rails
Comment installer Swiper in Rails
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
[Rails] Restrictions de fonction dans l'appareil (connexion / déconnexion)
Comment changer le nom de l'application dans les rails
Essayez d'implémenter l'ajout n-aire en Java
Comment insérer une vidéo dans Rails
Comment utiliser MySQL dans le didacticiel Rails
Comment appliquer les conventions de codage en Java
Préparation à l'introduction de jQuery dans Ruby on Rails
[rails] Comment configurer le routage dans les ressources