[RUBY] [Rails Devise] So wechseln Sie Benutzer, die nicht auf der Anmeldeseite angemeldet sind

Annahme: Dieses Mal wird der Vorgang mit dem Artikelcontroller ausgeführt.

class ItemsController < ApplicationController
  before_action :move_to_signed_in, except: [:index]
  def index
    #Generierung von Top-Seiten
  end

private
  def move_to_signed_in
    unless user_signed_in?
      #Benutzer, die nicht angemeldet sind, sehen die Anmeldeseite
      redirect_to  '/users/sign_in'
    end
  end

Verwendung von before_action

before_action :move_to_signed_in, except: [:index]

before_action → Eine Methode, die die angegebene allgemeine Verarbeitung ausführen kann, bevor die im Controller definierte Aktion ausgeführt wird. außer: [: index] → Indexaktion ist ausgeschlossen -Wenn andere Aktionen als die Indexaktion ausgeführt werden, wird move_to_signed_in verarbeitet. Mit anderen Worten, wenn die obere Seite angezeigt wird, wird der Prozess move_to_signed_in nicht ausgeführt.

Ausführungsinhalt von move_to_signed_in

def move_to_signed_in
    unless user_signed_in?
      #Benutzer, die nicht angemeldet sind, sehen die Anmeldeseite
      redirect_to  '/users/sign_in'
    end

user_signed_in? → Bestimmen Sie, ob der Benutzer angemeldet ist es sei denn → "wenn nicht" es sei denn, user_signed_in? → Wenn der Benutzer nicht angemeldet ist redirect_to '/ users / sign_in' → Auf Anmeldeseite übertragen

Zusammenfassung

Wenn der Benutzer versucht, eine andere Aktion als die Indexaktion auszuführen (z. B. Erstellen) Stellen Sie fest, ob Sie ein angemeldeter Benutzer sind. Wenn der Benutzer nicht angemeldet ist, wechselt der Bildschirm zur Anmeldeseite (/ users / sign_in). Wenn Sie sich anmelden können, können Sie die vom Benutzer angegebene Aktion ausführen.

Recommended Posts

[Rails Devise] So wechseln Sie Benutzer, die nicht auf der Anmeldeseite angemeldet sind
So verhindern Sie, dass Benutzer, die nicht angemeldet sind, zur neuen Seite oder zur Bearbeitungsseite wechseln
Notiz, die zum Anmeldebildschirm übergeht, wenn Sie nicht mit devise angemeldet sind
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
[Rails] Verwenden Sie devise, um Informationen zum aktuell angemeldeten Benutzer abzurufen
[Rails] So speichern Sie die Anforderungs-URL eines Benutzers, der nicht angemeldet ist, vorübergehend und kehren nach der Anmeldung zu dieser URL zurück
[Schienen] In Gerät hinzugefügt: Benutzername nicht zur Datenbank hinzugefügt
So überprüfen Sie Rails-Befehle im Terminal
[Rails] Geben Sie diesen Artikel an Sie weiter, die nach "devine name login" gesucht haben.
So implementieren Sie die Gastanmeldung in 5 Minuten im Rails-Portfolio
[Schienen] So zeigen Sie Bilder in der Ansicht an
Super einfach in 2 Schritten! So installieren Sie devise! !! (Schienen 5 Version)
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
[Rails] Wie man Edelstein "devise" benutzt
[Rails / Routing] So verweisen Sie auf den Controller in Ihrem eigenen Verzeichnis
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Implementierung des Anmeldebildschirms in Devise
[Schienen] So verhindern Sie den Bildschirmübergang
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
So installieren Sie jQuery in Rails 6
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
So installieren Sie Swiper in Rails
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
So wechseln Sie die Anzeige des Header-Menüs für jede Übergangsseite
So aktualisieren Sie Benutzeränderungen in Rails Devise, ohne ein Kennwort einzugeben
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Rails] Die Ursache dafür, dass nicht gepostet werden konnte, war in form_with
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
So implementieren Sie Suchfunktionen in Rails
So ändern Sie den App-Namen in Rails
So fügen Sie ein Video in Rails ein
[Schienen] Verwendung der Kartenmethode
Verwendung von MySQL im Rails-Tutorial
[Rails] So konfigurieren Sie das Routing in Ressourcen
So erhalten Sie das Datum mit Java
So implementieren Sie Ranking-Funktionen in Rails
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
Verwendung von credentials.yml.enc aus Rails 5.2
[Rails] Wie man Geräte ins Japanische übersetzt
So beheben Sie den Fehler 'ActionView :: Template :: Error' (Das Asset "application.css" ist in der Asset-Pipeline nicht vorhanden. '"Beim Vorkompilieren von Rails-Assets
[Rails6] So verbinden Sie die von Scaffold generierte Buchungsfunktion mit der von devise generierten Benutzerfunktion
[Schienen für Anfänger] Geben Sie das Übergangsziel an, nachdem Sie sich bei mehreren Devise-Modellen angemeldet haben
[Schienen] So registrieren Sie mehrere Datensätze in der Zwischentabelle mit einer Zuordnung von vielen zu vielen
So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten
[Fehler] So beheben Sie das Phänomen, dass der Bildschirm nach der Bearbeitung nicht wechselt