Pour enregistrer les informations envoyées par la vue dans le tableau Utilisateur Spécifiez la variable d'instance de modèle et l'URL dans form_with.
registrations/new.html.erb
<%= form_with model:@user, url:"/users", local: true do |f| %>
#réduction
<% end %>
Le @user spécifié dans model: ici est une variable d'instance basée sur le modèle User et est déclarée dans le contrôleur de devise. Le contrôleur de périphérique est généralement invisible, mais il semble qu'il puisse être généré et personnalisé avec la commande suivante.
$ rails g devise:controllers users
La partie du modèle d'URI définie dans le routage suivant est spécifiée dans url:.
Prefix Verb URI Pattern Controller#Action
POST /users(.:format) devise/registrations#create
De plus, si vous souhaitez enregistrer des informations dans une colonne autre que l'adresse e-mail et le mot de passe, vous devez autoriser l'enregistrement dans la colonne avec la description suivante. Dans l'exemple ci-dessous, les clés: [: username] peuvent être enregistrées dans la colonne nom d'utilisateur lors de la connexion.
application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
end
end
Référence: https://github.com/heartcombo/devise#strong-parameters
Pour implémenter la fonction de déconnexion, préparez un lien de déconnexion sur le fichier de vue comme indiqué ci-dessous.
<%= link_to 'Se déconnecter', destroy_user_session_path, method: :delete, class: "logout" %>
C'est OK si vous définissez le chemin et la méthode: de la même manière que les paramètres de routage.
Prefix Verb URI Pattern Controller#Action
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
Pour implémenter la fonction de connexion, préparez un lien de connexion sur le fichier de vue comme indiqué ci-dessous.
<%= link_to 'S'identifier', new_user_session_path, class: "login" %>
Sous la forme de la vue qui vous invite à saisir les informations de connexion, écrivez comme suit.
sessions/new.html.erb
<%= form_with model:@user, url:user_session_path, class: 'registration-main',
#réduction
<% end %>
Envoyer l'URL de la demande: comme vous pouvez le voir, Lorsque le lien de connexion est cliqué, la nouvelle action de l'appareil / des sessions est exécutée et Après avoir entré les informations de connexion, une fois soumises, l'action de création du dispositif / des sessions sera exécutée et vous pourrez vous connecter.
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
Bien qu'il s'agisse d'une brève explication, la fonction minimale de la fonction d'authentification de l'utilisateur utilisant le dispositif a été implémentée. Merci pour votre visite.
Recommended Posts