[RUBY] Implementieren Sie eine einfache Anmeldefunktion in Rails

Überblick

Ich erstelle ein Portfolio mit Ruby on Rails, um Jobs von unerfahrenen zu IT-Ingenieuren zu wechseln.

Wenn Sie ein Portfolio erstellen, das die Anmeldefunktion implementiert, können die meisten Funktionen nicht ohne Anmeldung verwendet werden. Sie müssen sich daher anmelden, um die Funktion zu bestätigen (überprüfen Sie Ihren Benutzernamen und Ihr Kennwort oder registrieren Sie eine neue). Es braucht Zeit und Mühe.

Ursprünglich handelt es sich um eine Funktion, die nicht als Bewerbung erforderlich ist, sondern im Rahmen des Studiums. Wenn Sie sich Ihr eigenes Portfolio ansehen, implementieren wir eine Funktion, mit der Sie sich einfach anmelden können, damit sich der Arbeitgeber keine Zeit nehmen muss.

Entwicklungsumgebung

Ruby:2.6.3 Ruby on Rails:5.2.0

Bevor wir auf die Erklärung eingehen

Ich werde einen Artikel anhängen, auf den ich bei der Implementierung der Funktion verwiesen habe.

1. Erstellen Sie SessionsController

Terminal


$ rails g controller sessions 

Erstellen Sie oben SessionsController

2. Bearbeiten Sie SessionsController

/app/controller/sessions_controller.rb


class SessionsController < ApplicationController
  def create
    user = User.find_by(name: params[:name])
    if user&.authenticate(params[:password])
      session[:user_id] = user.id
      redirect_to :root
    else
      render template: "users/login_form"
    end
  end

  def destroy
    session.delete(:user_id)
    redirect_to :root
  end

#Die folgenden Gastanmeldeaktionen
  def guest_login
    user = User.guest
    session[:user_id] = user.id
    redirect_to :root, notice: "Sie haben sich als Gastbenutzer angemeldet."
  end
end

Erstellen und Zerstören werden beschrieben, da sie beim Verwalten der Anmeldefunktion mit dem Sitzungscontroller erforderlich sind. Das Umleitungs- und Renderziel kann beliebig festgelegt werden. Persönlicher Hinweis: &. Gibt null zurück, wenn das Objekt auf der linken Seite null ist, und ruft die Methode auf der rechten Seite auf, wenn es nicht null ist.

Der Aktionsname kann beliebig festgelegt werden. Die Gastmethode wird im Benutzermodell im nächsten Abschnitt definiert.

3. Bearbeiten Sie das Benutzermodell

/app/assets/models/user.rb


#Kürzung
   def self.guest
    find_or_create_by!(name: 'guest') do |user|
      user.assign_attributes({
      email: "[email protected]",
      birthday: "1990-01-01",
      sex: 3})
      user.password = SecureRandom.urlsafe_base64
    end
  end

In meinem Fall enthält die Benutzertabelle mehrere Spalten. Wenn ich mich also bei guest anmelde, verwende ich assign_attributes, um verschiedene Informationen einzubetten. Es kann weggelassen werden, wenn es nicht notwendig ist.

4. Routing-Einstellungen

/config/routes.rb


  #Kürzung
  resource :session, only: [:create, :destroy] do
    post "guest_login", on: :collection
  end

Richten Sie das Routing zu guest_login ein.

5. Erstellen Sie einen Link

:/app/assets/views/~/view.html.erb


<%= link_to "Einfache Anmeldung", :guest_login_session, method: :post %>

Betten Sie das Obige ein, wo es benötigt wird.

Zusammenfassung

Mit dem oben genannten kann die einfache Anmeldefunktion implementiert werden. Der Punkt ist ** find_or_create_by! ** in Abschnitt 3. Sie können anhand des Argumentnamens nach 'guest' suchen, die entsprechenden Daten zurückgeben, falls vorhanden, und neue erstellen, wenn sie nicht vorhanden sind. Mit dieser Einstellung können Sie sich auch dann als "Gast" anmelden, wenn der Gastbenutzer gelöscht wird.

Bis zu einem gewissen Grad habe ich die Anwendung erstellt und dann zusätzlich eingeführt, sodass ich denke, dass es einige Szenen gibt, in denen die Erklärung fehlt. Wir entschuldigen uns für etwaige Unzulänglichkeiten. Ich würde es begrüßen, wenn Sie es auf eine Weise implementieren könnten, die zu Ihnen passt, indem Sie sich auf die Artikel beziehen, auf die ich verwiesen habe, und auf andere Artikel.

Endlich beiseite

Dies ist mein erster Beitrag, aber als ich den Artikel schrieb, hatte ich viele Möglichkeiten, die Bedeutung der Wörter zu bestätigen, was eine großartige Lernerfahrung war. Ich bestätigte erneut, dass die Kommunikation des Gelernten mein Verständnis vertiefen wird. In Zukunft möchte ich neben dem Studium mein Bestes geben, um etwas zu posten.

Recommended Posts

Implementieren Sie eine einfache Anmeldefunktion in Rails
Implementieren Sie die Anwendungsfunktion in Rails
Implementieren Sie die CSV-Download-Funktion in Rails
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (1)
Implementieren Sie die Anmeldefunktion in Rails einfach mit nur einem Namen und einem Passwort (2).
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (3).
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
Markdown in Rails implementiert
[Rails] Eine einfache Möglichkeit, eine Selbsteinführungsfunktion in Ihrem Profil zu implementieren
Einfache Benachrichtigungsfunktion in Rails (nur wenn befolgt)
[Schienen] Implementieren Sie die Benutzersuchfunktion
Implementieren Sie die LTI-Authentifizierung in Rails
2 Implementieren Sie eine einfache Syntaxanalyse in Java
[Rails] Implementieren Sie die Image-Posting-Funktion
Implementieren Sie die Nachsuchfunktion in der Rails-Anwendung (where-Methode).
[Rails] Implementieren Sie die Registrierungs- / Löschfunktion für Kreditkarten in PAY.JP
Fügen Sie eine Suchfunktion in Rails hinzu.
[Rails] Implementierung des Anmeldebildschirms in Devise
3 Implementieren Sie einen einfachen Interpreter in Java
Implementieren Sie die PHP-Implodierungsfunktion in Java
Implementieren Sie ein Kontaktformular in Rails
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
Anmeldefunktion
1 Implementieren Sie eine einfache Phrasenanalyse in Java
Implementieren Sie die Benutzerregistrierungsfunktion und die Unternehmensregistrierungsfunktion separat in Rails devise
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
Rails 6 (standardmäßig mit Webpacker) implementiert die Sternebewertungsfunktion
So implementieren Sie Suchfunktionen in Rails
Schienen Hinzufügen einer einfachen Anmeldefunktion
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Versuchen Sie, eine Anmeldefunktion mit Spring-Boot zu implementieren
Erstellen Sie trotzdem eine Anmeldefunktion mit Rails
So implementieren Sie Ranking-Funktionen in Rails
Implementieren Sie Schaltflächenübergänge mit link_to in Rails
Implementieren Sie die Rails-Paginierung
[Schienen] Kategoriefunktion
Group_by in Rails
Schienen folgen der Funktion
"Lehrer, ich möchte im Frühjahr eine Anmeldefunktion implementieren" ① Hallo Welt
[Rails] Benachrichtigungsfunktion
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Geben Sie Hello World in der einfachen Hauptfunktion von kotlin aus
Erstellen Sie die Authentifizierungsfunktion in der Rails-Anwendung mit devise
Implementieren Sie eine Freigabeschaltfläche in Rails 6, ohne Gem zu verwenden
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
So implementieren Sie eine ähnliche Funktion in Rails
Implementieren Sie Iterationen in View, indem Sie eine Sammlung rendern [Rails]