[RUBY] [Rails] Méthode de désinfection des paramètres forte requise lors de la personnalisation des fonctions "nouvel enregistrement", "connexion" et "mise à jour des informations"

introduction

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".

table des matières

  1. Conclusion
  2. À propos de la méthode devise_parameter_sanitizer
  3. Syntaxe de la méthode Sanitizer
  4. Description de chaque processus
  5. Dossier à décrire
  6. Résumé

Personne cible

J'ai utilisé la devise Je veux implémenter autre chose que le défaut de devise Comprendre les paramètres forts

Environnement de développement

ruby 2.6.5 rails 6.0.0 devise 4.7.3

1. Conclusion

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

2. À propos de la méthode devise_parameter_sanitizer

Tout d'abord, je vais vous expliquer la méthode.

2.1 Moment d'utilisation

Lorsque vous souhaitez personnaliser «nouvel enregistrement», «connexion» et «mise à jour des informations» autres que celles par défaut.

2.2 Méthode du désinfectant

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.

2.2 Différences entre les deux types de méthodes de permis

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]

3. Syntaxe de la méthode Sanitizer

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.

4. Description de chaque processus

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

5. Dossier à décrire

"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.

6. Résumé

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.

finalement

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 ~

Recommended Posts

[Rails] Méthode de désinfection des paramètres forte requise lors de la personnalisation des fonctions "nouvel enregistrement", "connexion" et "mise à jour des informations"
Nouvel enregistrement et connexion Spring-Security (JPA)