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.
Ruby:2.6.3 Ruby on Rails:5.2.0
Ich werde einen Artikel anhängen, auf den ich bei der Implementierung der Funktion verwiesen habe.
Terminal
$ rails g controller sessions
Erstellen Sie oben 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.
/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.
/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.
:/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.
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.
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