Je crée un portfolio en utilisant Ruby on Rails afin de faire passer des emplois inexpérimentés à ingénieur informatique.
Lors de la création d'un portefeuille qui implémente la fonction de connexion, la plupart des fonctions ne peuvent pas être utilisées sans connexion, vous devez donc vous connecter pour confirmer la fonction (vérifiez votre nom d'utilisateur et votre mot de passe, ou enregistrez-en un nouveau). Cela demande du temps et des efforts.
À l'origine, c'est une fonction qui n'est pas nécessaire en tant qu'application, mais dans le cadre d'une étude et lorsque vous regarderez votre propre portfolio, nous mettrons en place une fonction qui vous permettra de vous connecter facilement afin que l'employeur n'ait pas à prendre de temps.
Ruby:2.6.3 Ruby on Rails:5.2.0
Je vais joindre un article auquel j'ai fait référence lors de la mise en œuvre de la fonction.
Terminal
$ rails g controller sessions
Créer SessionsController ci-dessus
/app/controller/sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.find_by(name: params[:name])
if user&.authenticate(params[:password])
session[:user_id] = user.id
redirect_to :root
else
render template: "users/login_form"
end
end
def destroy
session.delete(:user_id)
redirect_to :root
end
#Les actions de connexion invité suivantes
def guest_login
user = User.guest
session[:user_id] = user.id
redirect_to :root, notice: "Vous vous êtes connecté en tant qu'utilisateur invité."
end
end
La création et la destruction sont décrites car elles sont nécessaires lors de la gestion de la fonction de connexion avec le contrôleur de sessions. La redirection et la destination de rendu peuvent être définies de manière arbitraire. Note personnelle: &. Renvoie nil lorsque l'objet du côté gauche est nul et appelle la méthode du côté droit lorsqu'il n'est pas nul.
Le nom de l'action peut être défini de manière arbitraire. La méthode invité est définie dans le modèle utilisateur dans la section suivante.
/app/assets/models/user.rb
#réduction
def self.guest
find_or_create_by!(name: 'guest') do |user|
user.assign_attributes({
email: "[email protected]",
birthday: "1990-01-01",
sex: 3})
user.password = SecureRandom.urlsafe_base64
end
end
Dans mon cas, la table user a plusieurs colonnes, donc quand je me connecte à guest, j'intègre diverses informations en utilisant assign_attributes. Il peut être omis si ce n'est pas nécessaire.
/config/routes.rb
#réduction
resource :session, only: [:create, :destroy] do
post "guest_login", on: :collection
end
Configurez le routage vers guest_login.
:/app/assets/views/~/view.html.erb
<%= link_to "Connexion facile", :guest_login_session, method: :post %>
Intégrez ce qui précède si nécessaire.
Avec ce qui précède, la fonction de connexion simple peut être implémentée. Le point est ** find_or_create_by! ** dans la section 3. Vous pouvez rechercher «invité» à partir du nom de l'argument, renvoyer les données correspondantes si elles existent et en créer une nouvelle si elles n'existent pas. Avec ce paramètre, même si l'utilisateur invité est supprimé, vous pouvez vous reconnecter en tant qu'invité.
Dans une certaine mesure, j'ai créé l'application puis je l'ai présentée en plus, donc je pense qu'il y a des scènes où l'explication manque. Nous nous excusons pour toute insuffisance. J'apprécierais que vous puissiez le mettre en œuvre d'une manière qui vous convient en vous référant aux articles auxquels j'ai fait référence et à d'autres articles.
C'est mon premier article, mais lorsque j'ai écrit l'article, j'ai eu de nombreuses occasions de reconfirmer le sens des mots, ce qui a été une excellente expérience d'apprentissage. J'ai reconfirmé que je pouvais approfondir ma compréhension en diffusant ce que j'avais appris. À l'avenir, en plus d'étudier, j'aimerais faire de mon mieux pour poster.
Recommended Posts