[RAILS] Activer des paramètres forts dans la conception

Méthodes d'écriture lors de l'utilisation de la devise, ce que je ne suis pas doué personnellement. En mémoire

méthode devise_parameter_sanitizer

private
def configure_permitted_parameters 
  #Autoriser les paramètres pour le modèle utilisateur de l'appareil
  devise_parameter_sanitizer.permit(:définir le nom du processus, keys: [:Clés à autoriser])
end

Le paramètre fort est décrit dans le contrôleur, mais le contrôleur qui traite la conception est décrit dans le Gem, il ne peut donc pas être modifié. De plus, si vous implémentez la fonction de connexion avec devise, en plus des paramètres, vous recevrez également des paramètres différents des paramètres. Vous avez besoin d'un moyen de refléter des paramètres forts dans le contrôleur de périphérique et d'un moyen d'obtenir des paramètres spécifiques au périphérique.

méthode devise_parameter_sanitizer

Vous pouvez obtenir des paramètres à partir de demandes telles que «connexion» et «nouvel enregistrement» liées au modèle utilisateur de l'appareil. En combinant cette méthode avec la méthode permit, vous pouvez également spécifier et inclure des colonnes nouvellement ajoutées pour les paramètres forts définis dans devise.

private
def configure_permitted_parameters  #Le nom de la méthode est habituel
  #Autoriser les paramètres pour le modèle utilisateur de l'appareil
  devise_parameter_sanitizer.permit(:définir le nom du processus, keys: [:Clés à autoriser])
end

Le permis de périphérique ajoute les paramètres autorisés en spécifiant la clé dans le tableau pour la clé du nom de traitement du dispositif dans le premier argument et les clés dans le second argument.

définir le nom du processus

Méthode Utilisation
:sign_in Lors du traitement de la connexion
:sign_up Lors du traitement d'un nouvel enregistrement
:account_update Lors du traitement de la mise à jour des informations de compte

Permet l'acquisition de paramètres avec la même clé que le nom spécifié dans les clés du deuxième argument pour le processus spécifié dans le premier argument. La valeur d'attribut de nom de chaque partie de formulaire décrite dans la vue est la clé du paramètre soumis à partir du formulaire. Le code pour ajouter un paramètre fort à concevoir ne peut pas être édité par le contrôleur de l'appareil, donc ⇩ Écrivez-le dans application_controller comme ceci.

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  private
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
  end
end

"if :: devise_controller?" Est-ce que si le traitement du contrôleur est lié à Ce n'est qu'alors que la méthode configure_permitted_parameters sera exécutée. La description. Même si le processus est lu par d'autres contrôleurs de tweets, il n'est pas exécuté.

Ceci est un mémorandum.

Recommended Posts

Activer des paramètres forts dans la conception
[Paramètres forts]
[Rails] Ajoutez des paramètres forts pour concevoir
rails Paramètres forts
[rails] Que sont les paramètres forts?
Erreur ActiveRecord :: NotNullViolation dans Devise
Méthodes d'assistance disponibles dans la devise
À propos des méthodes fréquemment utilisées dans la conception
[Rails] Paramètre de délai d'expiration de session dans l'appareil
Activer jQuery et Bootstrap dans Rails 6 (Rails 6)
[rails] Implémentation de l'écran de connexion dans la devise
[Rails] Erreur de validation inattendue dans l'appareil
Configurer le routage de pré-connexion dans Devise
Comment obtenir des paramètres dans Spark
À propos d'exiger lors de la définition de paramètres forts
Vérifier les paramètres Java dans les pods Kubernetes