Zunächst möchte ich den Ablauf der Geräteeinführung (den ich durchgeführt habe) überprüfen und mich hier daran erinnern. Da ich ein Anfänger bin, kontaktieren Sie mich bitte jedes Mal, wenn Sie mir etwas falsches sagen.
Erstens, eine Übersicht über das Gerät, dies ist ein Juwel für die Implementierung von Benutzerverwaltungsfunktionen. Sie können problemlos eine neue Registrierung und Anmeldung / Abmeldung implementieren.
Lassen Sie uns die Gemfile bearbeiten
gem 'devise'(Fügen wir zur letzten Zeile hinzu)
Sie können jetzt lokal, im Test und in der Produktion mit Ihrem Gerät arbeiten.
Starten Sie nach der Installation von Gem den lokalen Server, der im Terminal ausgeführt wird, einmal neu. Der Zeitpunkt für die Reflektion des installierten Gems liegt darin, dass der Server gestartet wird.
Um devise verwenden zu können, muss zusätzlich zur Installation von Gem eine Einstellungsdatei mit einem Befehl für devise erstellt werden. Erstellen wir mit diesem Befehl eine Datei
% rails g devise:install
Erfolg, wenn das folgende Protokoll fließt!
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Depending on your application's configuration some manual setup may be required:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
* Required for all applications. *
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
* Not required for API-only Applications *
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
* Not required for API-only Applications *
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
* Not required *
===============================================================================
Bei Verwendung von devise muss ein neues Benutzermodell zum Erstellen eines Kontos erstellt werden. Erstellen Sie zum Erstellen ein Benutzermodell mit dem Befehl zur Modellerstellung von devise anstelle der üblichen Modellerstellungsmethode. Mit dem folgenden Befehl können Sie das Modell, die zugehörige Migrationsdatei und die Routing-Einstellungen gleichzeitig generieren. Die mit devise verbundenen Pfade werden zu route.rb hinzugefügt.
rails g devise user
Erfolg im folgenden Protokoll
invoke active_record
create db/migrate/20200309082300_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
Darüber hinaus werden die folgenden Routen automatisch zu route.rb hinzugefügt.
Rails.application.routes.draw do
devise_for :users
root to: 'tweets#index'
resources :tweets
end
devise_for ist eine Gerätemethode, die mehrere Routen generiert, die für Benutzerfunktionen gleichzeitig erforderlich sind.
Da die Migrationsdatei auch vom vorherigen Befehl generiert wurde, migrieren Sie sie.
rails db:migrate
Die Tabelle wurde hier erstellt.
** Da die Tabelleninformationen geändert (migriert) wurden, starten wir den lokalen Server beim Starten neu. ** ** **
Wenn Sie die Anmeldefunktion in devise implementieren, wird der Anmelde- / Anmeldebildschirm automatisch generiert, jedoch nicht als Ansichtsdatei. Dies liegt daran, dass wir eine Ansichtsdatei laden, die im Gerätedelstein vorhanden ist.
Um Änderungen an der Geräteansichtsdatei vorzunehmen, müssen Sie den Befehl devise verwenden, um die Ansichtsdatei zu generieren.
Führen Sie den Befehl aus, um eine Ansicht für das Gerät zu erstellen
% rails g devise:views
Bearbeiten Sie die Ansicht des Anmeldebildschirms und die Ansichtsdatei des hier erstellten neuen Registrierungsbildschirms, um das Erscheinungsbild zu erstellen.
Damit ist die Grundinstallation des Geräts abgeschlossen. Mir ist bewusst, dass es hier in Ordnung ist, wenn es einfach ist, Wird auch in Geräten verwendet
rails g devise:contoroller users
Es gibt. Ich möchte die Verwendung in einem anderen Artikel unten zusammenfassen. (Weil ich die erforderlichen Standards nicht verstehe)
Die Informationen, die Sie bei der Anmeldung eingeben, werden als Parameter an den Server gesendet. Für normale Anforderungen ohne Gerät haben wir starke Parameter in den Controller geschrieben, um die Parameter zu begrenzen, die empfangen werden können.
Schreiben Sie zum Entwickeln auch starke Parameter in den Controller. Der Controller, der das Gerät verarbeitet, ist jedoch im Gem beschrieben und kann nicht bearbeitet werden. Wenn Sie die Anmeldefunktion mit devise zusätzlich zu params implementieren, erhalten Sie auch Parameter, die sich von params unterscheiden.
Aus dem oben Gesagten benötigen wir eine Methode, um starke Parameter auf dem Gerätesteuergerät wiederzugeben, und eine Methode, um gerätespezifische Parameter zu erfassen.
Eine Methode wie params in devise. 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.
Die Methode devise_parameter_sanitizer wird in der neu definierten privaten Methode wie die vorherigen starken Parameter verwendet. Da der Anbieter von devise den neu definierten Methodennamen als configure_permitted_parameters einführt, ist es üblich, ihn mit diesem Methodennamen zu definieren.
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.
Für den Prozessnamen des ersten Arguments können sign_in, sign_up und account_update verwendet werden, die bereits in devise festgelegt wurden. Sie entsprechen den Prozessen zum Zeitpunkt der Anmeldung, Anmeldung bzw. Aktualisierung der Kontoinformationen.
Prozessnamensrolle
:sign_in Bei der Anmeldung (Login) Verarbeitung
:sign_up Bei der Verarbeitung der Anmeldung (neue Registrierung)
:account_Update Bei der Verarbeitung wird die Kontoinformation aktualisiert
Schreiben Sie diese Beschreibungen in ** application_controller.rb **.
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
Beachten Sie, dass wir die if-Option von before_action verwenden. Durch Angabe des Methodennamens im Wert wird festgelegt, dass der Prozess nur ausgeführt wird, wenn der Rückgabewert wahr ist.
Dieses Mal habe ich den Namen der Hilfsmethode von devise angegeben: devise_controller?. Wenn es sich um die Verarbeitung des Controllers handelt, der sich auf devise bezieht, wird die Methode configure_permitted_parameters nur zu diesem Zeitpunkt ausgeführt. Selbst wenn der Prozess von anderen Tweets-Controllern gelesen wird, wird er nicht ausgeführt.
Schienen g Migrationsbefehl
Ein Befehl zum Generieren einer Migration. Die Migration wurde zuvor mit dem Modell mit dem Befehl Rails g model generiert, wird jedoch beim Ändern des Inhalts einer bereits erstellten Tabelle verwendet.
Dieser Befehl beschreibt automatisch, welche Art von Tabellenoperation gemäß dem Namen der angegebenen Datei ausgeführt werden soll.
Schienen g Migration Spaltennamen hinzufügen Zum Hinzufügen des Zieltabellennamens Mithilfe von Typ wird die Migration mit dem Code generiert, der zum Hinzufügen der Spalte zur Tabelle erforderlich ist.
Der Schlangenfall und der Kamelfall repräsentieren jeweils, wie Wörter getrennt werden.
Schlangenfälle verwenden Unterstriche, um Wörter zu trennen Kamel Fall groß geschrieben Wortumbrüche Wenn Wörter mit Variablennamen oder Funktionsnamen aufeinanderfolgend sind, gibt es verschiedene Möglichkeiten, die Wörter zu trennen. Siehe die folgende Tabelle.
Notationsmethode Erläuterungsbeispiel
Camel case adminUserCommentCreator mit unteren Anfängen und oberen Worttrennzeichen
Oberes Kamelgehäuse Eines der Kamelgehäuse. AdminUserCommentCreator, der Wortbegrenzer von Anfang an großschreibt
Snake Case Admin mit Unterstrich für Wortumbrüche_user_comment_creator
Die übliche Namenskonvention für Rails lautet wie folgt.
Namensziel Übliche Namenskonventionen
Klassenname Großer Kamelkasten
Methodenname Schlangenfall
Variablenname Schlangenfall
Beachten Sie diese Namenskonventionen, wenn Sie eigene Klassen und Methoden erstellen.
Recommended Posts