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).
① 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é
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.
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.
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)
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