[RUBY] Je veux définir devise_parameter_sanitizer individuellement lors de la création de deux appareils

Créez deux appareils et écrivez la procédure lorsque vous souhaitez définir individuellement devise_parameter_sanitizer.

Créer une application originale.

ruby '2.6.5' rails '6.0.0'

Tout d'abord, comme condition préalable, commencez par les paramètres de routage, de modèle, de contrôleur et de vue de chaque appareil. Veuillez vous référer à ici pour la méthode de création ci-dessus.

Maintenant, normalement, s'il y a un appareil pour une application, utilisez before_action dans le fichier application_controller.rb pour traiter devise_parameter_sanitizer.

app/controllers/application_controller.rb

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

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

De cette manière, vous pouvez autoriser une colonne spécifique lors de l'enregistrement en tant qu'utilisateur.

Voici comment définir devise_parameter_sanitizer pour différents modèles lorsque deux appareils sont créés.

Cette fois, j'ai fabriqué deux appareils, un utilisateur et un médecin.

Tout d'abord, c'est dans le README du référentiel, alors je l'ai essayé, mais ça ne sort pas très bien. Je ne savais pas s'il fallait créer un fichier pour hériter ou utiliser un fichier existant.

En conséquence, il existe un fichier individuel app / controllers / users / registrations_controller.rb, alors utilisez-le.

Pour l'utilisateur
    app/controllers/users/registrations_controller.rb

Pour le docteur
    app/controllers/doctors/registrations_controller.rb

Trouvez la description suivante dans le grand nombre de commentaires dans le fichier utilisateur.

app/controllers/users/registrations_controller.rb


   #  before_action :configure_sign_up_params, only: [:create]

Activer les commentaires pour. . ↓

app/controllers/users/registrations_controller.rb


   before_action :configure_sign_up_params, only: [:create]

Désormais, lors de la création d'un utilisateur, Maintenant que configure_sign_up_params est appelé Dans le même fichier, def configure_sign_up_params Commentez et activez-le.

app/controllers/users/registrations_controller.rb


   def configure_sign_up_params
     devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
   end

Et écrivez le karamu que vous souhaitez ajouter à cette partie (: sign_up, keys: [: nickname]).

app/controllers/users/registrations_controller.rb


 def configure_sign_up_params
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :password])
  end

Le docteur fera le même travail. Le fichier est app / controllers / doctor / registrations_controller.rb.

Comme certains d'entre vous l'ont peut-être remarqué, devise_parameter_sanitize n'est pas écrit dans app / controllers / application_controller.rb car il n'est pas défini dans le contrôleur d'application et est appelé par before_action dans un fichier individuel.

Lorsque vous faites ce qui précède

   TypeError

   superclass mismatch for class DoctorController

   class DoctorController < ApplicationController

J'ai une erreur. Si vous regardez de près, class DoctorController <ApplicationController est Doctor.

   class DoctorController < ApplicationController
   class DoctorsController < ApplicationController

Puisqu'il hérite de app / controllers / doctor / registrations_controller.rb, il n'y a pas de "" s "", alors décrivez-le.

Veuillez noter que les rails ont des règles de dénomination strictes! !!

Recommended Posts

Je veux définir devise_parameter_sanitizer individuellement lors de la création de deux appareils
Je souhaite créer une annotation générique pour un type
Je souhaite générer des informations de manière aléatoire lors de l'écriture du code de test
Je veux convertir des caractères ...
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je veux créer un fichier Parquet même en Ruby
Une collection de liens que vous souhaitez aider lorsque JSF ne fonctionne pas du tout
Je veux éviter OutOfMemory lors de la sortie de gros fichiers avec POI
[Rails] Je souhaite ajouter des données aux paramètres lors de la transition avec link_to
Je veux connaître le JSP du portlet ouvert lors du développement de Liferay
[Administrateur actif] Je souhaite personnaliser le traitement de création et de mise à jour par défaut
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Je souhaite développer une application web!
Je veux écrire un joli build.gradle
Je souhaite éliminer les messages d'erreur en double
Je veux créer une application ios.android
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!
Je veux écrire un test unitaire!
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Je veux arrêter complètement les mises à jour Java
Je veux utiliser @Autowired dans Servlet
Je souhaite cibler les champs statiques sur @Autowired
Je veux faire du développement d'équipe à distance
[Android] Je souhaite créer un ViewPager pouvant être utilisé pour les didacticiels
Je souhaite créer l'environnement de développement local le plus solide à l'aide de conteneurs distants VSCode