[RAILS] Aktivieren Sie starke Parameter in devise

Methoden zum Schreiben bei der Verwendung von Geräten, die ich persönlich nicht gut kann. Als Memorandum

devise_parameter_sanitizer-Methode

private
def configure_permitted_parameters 
  #Zulassen von Parametern für das Benutzermodell des Geräts
  devise_parameter_sanitizer.permit(:Prozessname entwickeln, keys: [:Schlüssel zu erlauben])
end

Der starke Parameter wird im Controller beschrieben, aber der Controller, der das Gerät verarbeitet, wird im Gem beschrieben, sodass er nicht bearbeitet werden kann. Wenn Sie die Anmeldefunktion mit devise implementieren, erhalten Sie zusätzlich zu den Parametern auch Parameter, die sich von den Parametern unterscheiden. Sie benötigen eine Möglichkeit, starke Parameter im Devise Controller wiederzugeben und gerätespezifische Parameter abzurufen.

devise_parameter_sanitizer-Methode

Sie können Parameter aus Anforderungen wie "Login" und "New Registration" abrufen, die sich auf das Benutzermodell von devise beziehen. Durch Kombinieren dieser Methode mit der Genehmigungsmethode können Sie auch neu hinzugefügte Spalten für die in devise definierten starken Parameter angeben und einschließen.

private
def configure_permitted_parameters  #Methodenname ist üblich
  #Zulassen von Parametern für das Benutzermodell des Geräts
  devise_parameter_sanitizer.permit(:Prozessname entwickeln, keys: [:Schlüssel zu erlauben])
end

Die Erlaubnis zum Entwickeln fügt die zulässigen Parameter hinzu, indem der Schlüssel im Array für den Schlüssel des Entwurfsverarbeitungsnamens im ersten Argument und die Schlüssel im zweiten Argument angegeben wird.

Prozessname entwickeln

Methode Verwenden
:sign_in Bei der Bearbeitung des Logins
:sign_up Bei der Bearbeitung einer neuen Registrierung
:account_update Bei der Verarbeitung der Kontoinformationen aktualisieren

Ermöglicht die Erfassung von Parametern mit demselben Schlüssel wie der in den Schlüsseln des zweiten Arguments angegebene Name für den im ersten Argument angegebenen Prozess. Der Name-Attributwert jedes in der Ansicht beschriebenen Formularteils ist der Schlüssel des vom Formular übermittelten Parameters. Der Code zum Hinzufügen eines starken Parameters zum Entwickeln kann nicht vom Controller des Geräts bearbeitet werden. ⇩ Schreiben Sie ihn daher wie folgt in application_controller.

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?" Ist, wenn sich die Controller-Verarbeitung auf devise bezieht Nur dann wird die Methode configure_permitted_parameters ausgeführt. Beschreibung. Selbst wenn der Prozess von anderen Tweets-Controllern gelesen wird, wird er nicht ausgeführt.

Dies ist ein Memorandum.

Recommended Posts

Aktivieren Sie starke Parameter in devise
[Starke Parameter]
[Schienen] Fügen Sie starke Parameter hinzu, um sie zu entwickeln
Schienen Starke Parameter
[Schienen] Was sind starke Parameter?
ActiveRecord :: NotNullViolation im Gerätefehler
Hilfsmethoden im Gerät verfügbar
Über häufig verwendete Methoden in der Entwicklung
[Rails] Einstellung des Sitzungszeitlimits im Gerät
Aktivieren Sie jQuery und Bootstrap in Rails 6 (Rails 6).
[Rails] Implementierung des Anmeldebildschirms in Devise
[Rails] Unerwarteter Validierungsfehler im Gerät
Richten Sie das Routing vor der Anmeldung in Devise ein
So erhalten Sie Parameter in Spark
Über erfordern beim Einstellen starker Parameter
Überprüfen Sie die Java-Parameter in Kubernetes-Pods