Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)

Überblick

Implementieren Sie die Anmeldefunktion mit gem'devise ' Ändern Sie die Anmeldung für Name und Kennwort anstelle der Anmeldung für Kennwort und E-Mail.


Dieses Ziel und meine Umgebung


Implementierung

Vorbereitung

Gemfile


#Unten hinzugefügt
gem 'devise'

Führen Sie den Befehl unter dem Terminal aus, nachdem Sie die Gem-Datei bearbeitet haben

Terminal


bundle install
rails g devise:install
rails g devise User
rails db:migrate

Dieses Mal habe ich mich jedoch entschieden, mich mit Namen anzumelden. Bearbeiten Sie daher die Migrationsdatei, bevor Rails db: migrate.

db/migrate


#t.timestamps null:Fügen Sie oben false hinzu
t.string :name

Ansicht erstellen

Terminal


rails g devise:view

Übrigens ist in der erstellten Datei die Registrierung eine neue Registrierung und die Sitzung eine Datei, die sich auf die Anmeldung bezieht.

:app/views/devise/sessions/new.html.erb


<h2>Log in</h2>

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
  </div>

(Ausgelassen, da sich danach nichts mehr ändert)
<% end %>
<%= render "devise/shared/links" %>

Ändern Sie E-Mail in Name und E-Mail-Feld in Textfeld

:app/views/devise/registrations/new.html.erb


#Über dem E-Mail-Div-Tag hinzugefügt
<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
</div>

Parameter zulassen

app/controllers/application_controller.rb


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

        protected

        def configure_premitted_parameters
            devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :email])
            devise_parameter_sanitizer.permit(:sign_in, keys: [:name])
        end
end

Fast fertig damit

Bildschirmproduktion nach dem Login

Terminal


rails g controller home top

:app/views/home/top.html.erb


<h1>Home#top</h1>
<%= link_to "Ausloggen", destroy_user_session_path, method: :delete %>

Ich möchte mich abmelden können, daher verwende ich die link_to-Methode, um eine Abmeldeschaltfläche zu erstellen. Fügen Sie application_controller.rb Folgendes hinzu

app/controllers/application_controller.rb


#Fügen Sie oben auf geschützt hinzu
def after_sign_in_path_for(resource)
    home_top_path
end

cinfig/initializers/devise.rb


#Kommentieren Sie Folgendes um Zeile 49 aus
config.authentication_keys = [:email]
#Ändern Sie die obige E-Mail in Namen
config.authentication_keys = [:name]

Beachten Sie, dass Sie sich ohne diesen Namen nicht anmelden können!

das ist alles.

Recommended Posts

Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
[Ruby on Rails] Implementierung einer ähnlichen Funktion
[Ruby on Rails] Implementierung der Kommentarfunktion
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Ruby on Rails Implementierung der automatischen Mail-Sendefunktion
[Rails] Implementierung der Kategoriefunktion
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung einer ähnlichen Funktion
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
[Rails] Implementierung der CSV-Importfunktion
[Rails] Asynchrone Implementierung der Like-Funktion
[Rails] Implementierung des Anmeldebildschirms in Devise
[Ruby on Rails] Paging-Funktion eingeführt
[Rails] Implementierung der Bildvorschau
Grundkenntnisse in Ruby on Rails
[Rails] Über die Implementierung der Like-Funktion
[Rails] Implementierung der Benutzerrückzugsfunktion
[Rails] Implementierung der CSV-Exportfunktion
[Ruby on Rails] CSV-Ausgabefunktion
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] DM, Chat-Funktion
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
[Rails] Implementierung einer neuen Registrierungsfunktion im Assistentenformat mit devise
[Ruby on Rails] Einführung der Anfangsdaten
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
Ruby on Rails-Installationsmethode [Mac Edition]
Schienen Hinzufügen einer einfachen Anmeldefunktion
Implementierung der Benutzerauthentifizierungsfunktion mit devise (1)
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Implementierung der Benutzerauthentifizierungsfunktion mit devise (3)
[Ruby on Rails] Japanische Fehlernotation
Erklärung von Ruby auf Schienen für Anfänger ①
[Ruby on Rails] Logisches Löschen (Auszahlungsfunktion)
[Rails] Implementierung der Suchfunktion mit Gem's Ransack
[Ruby on Rails] Bis zur Einführung von RSpec
[Rails] Implementierung der Bildvergrößerungsfunktion mit Lightbox2
Empfehlung der Serviceklasse in Ruby on Rails
Ruby on Rails ~ Grundlagen von MVC und Router ~
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)