[RUBY] Comment implémenter la connexion invité en 5 minutes sur le portefeuille de rails

introduction

J'expliquerai comment implémenter la "fonction de connexion invité" que l'on peut qualifier d'indispensable pour le portefeuille d'activités de changement de poste. Il existe de nombreuses façons de procéder, mais nous allons la mettre en œuvre de la manière qui semble la plus simple. Nous partirons de l'hypothèse que la fonction de connexion à l'aide de devise est implémentée (tant que le responsable du recrutement peut se connecter).

couler

① Enregistrez les informations de l'utilisateur invité dans le fichier de départ (2) Ajoutez une colonne invité (type booléen) à la table Users. Cela permet de déterminer s'il s'agit d'un utilisateur invité ou non. ③ Lisez le fichier de départ après la migration ④ Création du bouton de connexion invité

1 Edition du fichier de base

db/seeds.rb/


User.create!(name: 'Guest User',
             email: '[email protected]',
             password: '12345678',
             password_confirmation: '12345678',
             created_at: Time.zone.now,
             updated_at: Time.zone.now,
             guest: true)

S'il y a des colonnes autres que nom, email, mot de passe, ajoutez-les de la même manière. guest: La vraie partie est la colonne nouvellement ajoutée décrite ci-dessous.

2 Ajouter une colonne d'invité

db/seeds.rb/


class DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string  :email,              null: false, default: ""
      t.string  :encrypted_password, null: false, default: ""
      t.string  :name,               null: false
      ##Ajouté ci-dessous! !!
      t.boolean :guest, default: false, null: false
    ##Omis ci-dessous
      
      
  end
end

Définissez les valeurs par défaut pour les colonnes booléennes. En définissant par défaut: false, les utilisateurs normaux seront invités: false et peuvent être distingués des utilisateurs administratifs. (Fal est retourné dans user.guest, true n'est retourné que pour les utilisateurs invités.) Null: false n'est pas obligatoire, mais il n'est pas bon d'avoir null dans la base de données, c'est donc provisoire.

3 Lire le fichier

Exécutez les commandes suivantes dans l'ordre.

rails db:migrate:reset
rails db:seed

Si "Gust User" est enregistré comme indiqué ci-dessous et 1 est entré dans la colonne Rafale, cela réussit. ![983D61C1-739E-4B1C-9DB6-A1047C184855_4_5005_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/5fa8a35c-df9f-26d0-271b-8591eb9e32b .jpeg)

4 Création d'un bouton de connexion invité

Si vous venez jusqu'ici, vous vous reposerez.

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


<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |g| %>
  <%= g.hidden_field :email, value: '[email protected]' %>
  <%= g.hidden_field :password, value: '12345678' %>
  <div class="mb-3">
    <%= g.submit 'Connexion invité', class: 'btn btn-warning' %>
   </div>
<% end %>

Vous pouvez masquer le formulaire en utilisant g.hidden_field, soumettre les informations du formulaire et vous connecter en tant qu'utilisateur invité en appuyant simplement sur un bouton! Placez ce bouton dans n'importe quelle position et vous avez terminé. Je vous remercie pour votre travail acharné.

Recommended Posts

Comment implémenter la connexion invité en 5 minutes sur le portefeuille de rails
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter la fonctionnalité de classement dans Rails
Comment implémenter une fonctionnalité similaire dans Rails
[Rails] Comment mettre en œuvre le scraping
Comment implémenter une fonctionnalité intéressante dans Ajax avec Rails
Implémenter une fonction de connexion simple dans Rails
Comment installer jQuery dans Rails 6
[Rails] Comment mettre en œuvre le classement par étoiles
Comment installer Swiper in Rails
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Comment changer le nom de l'application dans les rails
Comment insérer une vidéo dans Rails
Comment utiliser MySQL dans le didacticiel Rails
Comment appliquer les conventions de codage en Java
[rails] Comment configurer le routage dans les ressources
Pour implémenter la publication d'images à l'aide de rails
Comment implémenter le traitement asynchrone dans Outsystems
Comprendre en 5 minutes !! Comment utiliser Docker
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment traduire Rails en japonais en général
[Rails] Comment implémenter un test unitaire d'un modèle
Comment séparer .scss par contrôleur dans Rails
Comment ajouter conditionnellement une classe html.erb dans Rails
Comment créer facilement un pull-down avec des rails
Comment utiliser JQuery dans Rails 6 js.erb
Comment implémenter le verrouillage optimiste dans l'API REST
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Comment vérifier les commandes Rails dans le terminal
Comment implémenter la pagination dans GraphQL (pour ruby)
Comment écrire des rails
Comment désinstaller Rails
Markdown implémenté dans Rails
Comment implémenter UICollectionView avec du code uniquement dans Swift
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Ruby on Rails] Comment écrire enum en japonais
[Rails, JS] Comment implémenter l'affichage asynchrone des commentaires
Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs
Comprendre comment utiliser le décodeur JSON de Swift en 3 minutes
[Ruby On Rails] Comment réinitialiser DB dans Heroku
[Comment insérer une vidéo dans un hameau avec Rails]
Comment écrire une recherche de comparaison de dates dans Rails
Comment interroger Array dans jsonb avec Rails + postgres
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
Résumé de la mise en œuvre des arguments par défaut en Java
[Rails] Comment charger JavaScript dans une vue spécifique