La méthode qui est sortie quand je copiais des sutras sur Rails s'est avérée être "ce que c'est", donc je vais la revoir et l'écrire comme une sortie et un mémorandum.
devise_parameter_sanitizer est une méthode fournie par la gemme appelée devise. C'est une méthode pour obtenir des paramètres (nom, mail, etc.) à partir de demandes telles que la connexion et la nouvelle inscription lors de la mise en œuvre de la fonction de gestion des utilisateurs.
Les paramètres sont des données transmises en externe incluses dans la demande. Elles sont traitées par le contrôleur et enregistrées comme données dans les colonnes du tableau via le modèle. S'agit-il de quelque chose comme des données envoyées depuis le champ de saisie du navigateur?
Pour saisir des données dans le formulaire et le soumettre en tant que demande, écrivez la description suivante.
index.html
#C'est l'histoire de l'expéditeur
<%= form_with url:”URL”, method: :post, local: true do |form| %>
<%= form.text_field :content %>
<% end %>
Je pense que c'est quelque chose qui vous permet de remplir un formulaire et d'envoyer des données à une URL. La partie ": content" de la deuxième ligne devient params, et en tant que "params [: content]" Ce sont les données transmises de l'extérieur au contrôleur.
C'était l'histoire de l'expéditeur, mais j'aimerais aussi penser au destinataire. Le destinataire peut être limité à recevoir uniquement les paramètres avec la clé spécifiée (nom de colonne). C'est ce qu'on appelle un paramètre fort. La description est la suivante.
players_controller.rb
#C'est l'histoire du destinataire
params.require(:player).permit(:name, :age)
Dans la description ci-dessus, seules les données de la clé (colonne) «nom» et de la clé (colonne) «âge» du modèle Player seront reçues de la demande. Spécifiez la table avec des colonnes dans require. Si la demande contient des données «hauteur», «vitesse» et «défense» en plus des clés «nom» et «âge», elles ne seront pas reçues.
Comment décrire est comme suit.
application_controller.rb
#Pour concevoir
devise_parameter_sanitizer.permit(:sign_up, keys: [:email])
Etant donné que devise_parameter_sanitizer est une méthode de conception, le modèle est un modèle utilisateur créé par devise, donc l'exigence ci-dessus n'est pas décrite. Le paramètre (données) que vous obtenez lorsque vous vous inscrivez signifie «e-mail».
Quand j'ai écrit le code avec ce devise_parameter_sanitizer, j'ai pensé que le joyau de devise était assez pratique pour implémenter la fonction de connexion. Vous pouvez vous enregistrer et vous connecter sans créer de fonction de connexion à partir de zéro. En mettant les informations nécessaires (colonnes) dans devise_parameter_sanitizer, devise fera le reste dans une certaine mesure, donc je ne suis pas encore sûr, mais je pense que c'est une méthode très pratique.
Bien que j'aie écrit cet article, il y a encore des choses que je ne comprends pas. Je vous serais reconnaissant de bien vouloir me dire si quelque chose ne va pas avec cette reconnaissance. Merci.
Un ingénieur actif explique comment utiliser la méthode require / permit de Rails [pour les débutants] https://techacademy.jp/magazine/22078
Recommended Posts