Méthode de désinfection des paramètres forte requise pour personnaliser les fonctions de «nouvel enregistrement», de «connexion» et de «mise à jour des informations» du périphérique
C'est devenu un long titre, mais il s'agit de "concevoir une fonction de gestion des utilisateurs". Vous pouvez facilement créer des fonctions de gestion des utilisateurs à l'aide de l'appareil, mais divers paramètres sont nécessaires pour modifier les fonctions par défaut. Cette fois, nous allons introduire le traitement requis lors de la personnalisation de "nouvel enregistrement", "connexion" et "mise à jour des informations".
J'ai utilisé la devise Je veux implémenter autre chose que le défaut de devise Comprendre les paramètres forts
ruby 2.6.5 rails 6.0.0 devise 4.7.3
Tout d'abord, la conclusion est la suivante.
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
#S'il s'agit d'un contrôleur de périphérique, chargez la méthode avant chaque action
before_action :configure_permitted_parameters, if: :devise_controller? #À propos de la fonction de connexion
before_action :configure_account_update_parameters, if: :devise_controller? #À propos de la fonction d'édition
private
#À propos de la fonction de connexion
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :family_name_kanji, :first_name_kanji, :birthday])
end
#À propos de la fonction d'édition
def configure_account_update_parameters
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname, :family_name_kanji, :first_name_kanji, :birthday])
end
end
Tout d'abord, je vais vous expliquer la méthode.
Lorsque vous souhaitez personnaliser «nouvel enregistrement», «connexion» et «mise à jour des informations» autres que celles par défaut.
La méthode de désinfection est une méthode pour obtenir les paramètres liés au modèle utilisateur de l'appareil. Il y a une description à l'intérieur de l'appareil pour obtenir les paramètres par défaut, mais il s'agit d'appliquer un désinfectant = (assainisseur) pour le rendre personnalisable.
Ensuite, combinez le désinfectant et les méthodes d'autorisation. De cette façon, vous pouvez inclure vos propres colonnes nouvellement ajoutées pour les paramètres forts définis par défaut dans devise.
Puisqu'il existe deux types de méthodes de permis, je vais les faire dérailler, mais je vais vous expliquer un peu. Le permis "désinfectant" est une méthode pour obtenir les paramètres de l'appareil. Elle est différente de la méthode d'autorisation des paramètres utilisée lors de la sauvegarde avec le contrôleur de "Rails".
Vous trouverez ci-dessous des exemples de chacun.
controller.rb
#Exemple)Permettre la méthode des paramètres
params.require(:Nom du modèle).permit(:Clés que vous souhaitez autoriser)
app/controllers/application_controller.rb
#Exemple) devise_parameter_méthode d'autorisation de désinfectant
devise_parameter_sanitizer.permit(:définir le nom du processus, keys: [:Clé (nom de la colonne) que vous souhaitez autoriser]
Le nom de la méthode est généralement défini comme configure_permitted_parameters, mais vous pouvez le nommer librement.
app/controllers/application_controller.rb
private
def configure_permitted_parameters #Vous pouvez nommer la méthode librement.
#Autoriser les paramètres pour le modèle utilisateur de l'appareil
devise_parameter_sanitizer.permit(:définir le nom du processus, keys: [:Clé (nom de la colonne) que vous souhaitez autoriser])
end
C'est l'explication de la méthode devise_parameter_sanitizer.
Comme mentionné dans "2.1 Période d'utilisation", la description de ": concevoir le nom du processus" change aux fins du traitement. Le but du traitement est "nouvel enregistrement", "connexion" et "mise à jour des informations".
Nom du processus | Objectif |
---|---|
:sign_in | S'identifier(se connecter)Lors du traitement |
:sign_up | s'inscrire(S'inscrire)Lors du traitement |
:account_update | Lors du traitement de la mise à jour des informations de compte |
"Où écrire" est "un fichier hérité par tous les contrôleurs". Autrement dit, le fichier application_controller.rb. Une fois ce contrôleur chargé, tous les autres contrôleurs seront chargés. De plus, puisque nous voulons traiter toutes les actions avant le traitement, nous utilisons before_action.
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
#↑ Ce#
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
#↑(:définir le nom du processus, keys: [:Clé (nom de la colonne) que vous souhaitez autoriser])
end
end
Ceci termine la plupart de la mise en œuvre. Tout ce que vous avez à faire est de modifier le permis en fonction de ce que vous souhaitez faire. Ce qui précède est Nom du traitement de conception =: sign_up keys = [:nickname] Il est implémenté dans.
Le point de la procédure est Décrit dans application_controller.rb set before_action Utilisez la méthode sanitizer.permit
C'est tout à propos de la méthode de désinfection des paramètres forte requise pour personnaliser les fonctions "nouvel enregistrement", "connexion" et "mise à jour des informations" de l'appareil.
Je suis un débutant en programmation, mais je publie un article dans l'espoir qu'il aidera les gens qui sont également en difficulté. A la prochaine fois ~