[RUBY] Führen Sie devise with Rails ein, um Benutzerverwaltungsfunktionen zu implementieren

Einführung von Benutzerverwaltungsfunktionen und einfache Implementierung

Wir haben zusammengefasst, wie Benutzerverwaltungsfunktionen in Rails mithilfe von gem devise implementiert werden.

Devise vorstellen

Fügen Sie zuerst der Gemfile ein Gerät hinzu.

gemfile


gem 'devise'

Führen Sie die Bundle-Installation ** aus und starten Sie den Server neu. ** ** **

Erstellen Sie dann eine Konfigurationsdatei.

$ rails g devise:install

Erstellen Sie ein Benutzermodell.

rails g devise user

Zu diesem Zeitpunkt wird die Migrationsdatei gleichzeitig mit der Erstellung des Benutzermodells generiert. Wenn also eine Spalte hinzugefügt werden muss, beschreiben Sie diese vor der Migration.

○○_devise_create_users.rb


--Kürzung--
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :nickname,           null: false, default: ""
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
      t.string :family_name,        null: false, default: ""
      t.string :first_name,         null: false, default: ""
      t.string :read_family,        null: false, default: ""
      t.string :read_first,         null: false, default: ""
      t.date :birth,                null: false
--Kürzung--

E-Mail und Passwort sollten standardmäßig angehängt werden, daher habe ich diesmal erstellt, um weitere Spalten hinzuzufügen.

Nebenbei verwende ich den Datumstyp bei der Vorbereitung der Geburtsdatumsspalte, aber da der Standardwert nur mit einer Konstante festgelegt werden kann, habe ich diesmal nicht den Standardwert festgelegt.

Migrieren Sie, wenn Sie bereit sind.

$ rails db:migrate

Sie müssen lediglich die Ansichtsdatei vorbereiten und können loslegen.

Implementierung der Anmeldung

Um andere Informationen als E-Mail und Passwort bei der Anmeldung des Benutzers zu registrieren, muss dies in application_controller beschrieben werden.

application_controller.rb


class ApplicationController < ActionController::Base
  before_action :authenticate_user!, except: [:index]
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :family_name, :email, :first_name, :read_family, :read_first, :birth])
  end
end

Wenn Sie zu einer anderen Seite wechseln als auf der Indexseite, können Sie sich zwingen, zur Anmeldeseite zu springen. Ich habe die before_action: authenticate_user! -Methode geschrieben.

Zusätzliche Parameter registrieren Before_action: Schreiben Sie die Methode configure_permitted_parameters.

Stellen Sie außerdem sicher, dass Sie die Modellinstanzvariablen und -pfade an die Methode form_with der Ansichtsdatei übergeben.

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


---Kürzung---
<%= form_with class: 'registration-main', model: @user, url: user_registration_path,  local: true do |f| %>
---Kürzung---

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


---Kürzung---
<%= form_with class: 'registration-main',model: @user, url: user_session_path, local: true do |f| %>
---Kürzung---

Ohne sie funktioniert es nicht gut mit der Benutzertabelle.

Abmeldeimplementierung

Hier implementieren wir eine Abmeldeschaltfläche in der Ansichtsdatei mit der Methode link_to. Der Punkt ist, sich daran zu erinnern, den Pfad zu schreiben, um die Benutzersitzung zu trennen.

ruby:xxx.html.erb


<li><%= link_to 'Ausloggen', destroy_user_session_path, method: :delete, class: "logout" %></li>

So ändern Sie die Notation zwischen Login und Gast

Wenn Sie angemeldet sind, werden auf der Seite eine Schaltfläche zum Verschieben zu Meine Seite und eine Schaltfläche zum Abmelden angezeigt. Ich werde auch die Beschreibung zusammenfassen, damit die neue Registrierungsschaltfläche und die neue Anmeldeschaltfläche angezeigt werden, wenn Sie nicht angemeldet sind (wenn Sie ein Gast sind).

Verwenden wir die user_signed_in? -Methode der Hilfsmethode. Schreiben Sie Folgendes in die entsprechende Ansichtsdatei.

ruby:views/xxx.html.erb


<% if user_signed_in? %>
          <li><%= link_to current_user.nickname, root_path, class: "user-nickname" %></li>
          <li><%= link_to 'Ausloggen', destroy_user_session_path, method: :delete, class: "logout" %></li>
      <% else %>
          <li><%= link_to 'Einloggen', new_user_session_path, class: "login" %></li>
          <li><%= link_to 'Anmelden', new_user_registration_path, class: "sign-up" %></li>
      <% end %>

Recommended Posts

Führen Sie devise with Rails ein, um Benutzerverwaltungsfunktionen zu implementieren
Implementieren Sie Benutzerverwaltungsfunktionen mit Devise
So implementieren Sie Suchfunktionen in Rails
So implementieren Sie Ranking-Funktionen in Rails
So installieren Sie jQuery in Rails 6
Implementieren Sie die Benutzerregistrierungsfunktion und die Unternehmensregistrierungsfunktion separat in Rails devise
So aktualisieren Sie Benutzeränderungen in Rails Devise, ohne ein Kennwort einzugeben
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
[Rails] Verwenden Sie devise, um Informationen zum aktuell angemeldeten Benutzer abzurufen
Implementieren Sie Benutzerverwaltungsfunktionen in einem Assistentenformat
So implementieren Sie eine ähnliche Funktion in Rails
[Schienen] In Gerät hinzugefügt: Benutzername nicht zur Datenbank hinzugefügt
Einführung von Vue.js in Rails
Markdown in Rails implementiert
So implementieren Sie die Gastanmeldung in 5 Minuten im Rails-Portfolio
So implementieren Sie eine nette Funktion in Ajax mit Rails
Implementieren Sie die Anwendungsfunktion in Rails
[Schienen] Implementieren Sie die Benutzersuchfunktion
Implementieren Sie die LTI-Authentifizierung in Rails
[Schienen] Spalte zum Entwickeln hinzufügen
[Rails] So implementieren Sie Scraping
Super einfach in 2 Schritten! So installieren Sie devise! !! (Schienen 5 Version)
[Rails] Wie man Edelstein "devise" benutzt
[Rails] Eine einfache Möglichkeit, eine Selbsteinführungsfunktion in Ihrem Profil zu implementieren
[Schienen] Verwendung von Geräten (Hinweis)
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
[Rails] Einstellung des Sitzungszeitlimits im Gerät
[Rails] Implementierung des Anmeldebildschirms in Devise
Bis zur Einführung von Schriftarten in Rails
Implementieren Sie eine einfache Anmeldefunktion in Rails
Implementieren Sie ein Kontaktformular in Rails
Ich möchte Geräte in Rails hinzufügen, kann die Installation jedoch nicht bündeln
[Schienen] Fügen Sie starke Parameter hinzu, um sie zu entwickeln
[Rails] So implementieren Sie die Sternebewertung
Versuchen Sie, Yuma in Java zu implementieren
Implementieren Sie die CSV-Download-Funktion in Rails
So installieren Sie Swiper in Rails
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
So ändern Sie den App-Namen in Rails
Versuchen Sie, n-ary Addition in Java zu implementieren
So fügen Sie ein Video in Rails ein
Verwendung von MySQL im Rails-Tutorial
So erzwingen Sie Codierungskonventionen in Java
Vorbereiten der Einführung von jQuery in Ruby on Rails
[Rails] So konfigurieren Sie das Routing in Ressourcen