Ich habe mich kürzlich in Rails umgesehen und festgestellt, dass es viele Verweise auf gibt current_user
. Kommt das nur von Devise? und muss ich es selbst manuell definieren, auch wenn ich Devise verwende? Gibt es Voraussetzungen für die Verwendung current_user
(wie das Vorhandensein von Sitzungen, Benutzern usw.)?
quelle
session
ist in Rails eingebaut. Standardmäßig wird ein Cookie verwendet, um den Status eines Clients zwischen Anforderungen aufrechtzuerhalten. Weitere Informationen finden Sie unter guide.rubyonrails.org/security.html#sessions .return unless session[:user_id]
wie in Zachs Antwort angegebenif current_user
einfügen. Andernfalls löst jede Überprüfung beim Abmelden eine weitere Datenbankabfrage aus.Ja,
current_user
verwendetsession
. Sie können in Ihrem Anwendungscontroller etwas Ähnliches tun, wenn Sie Ihre eigene Authentifizierung durchführen möchten:quelle
session
ist so ähnlichparams
, außer dass es für mehrere Anfragen bestehen bleibt. Sie können damit alle Arten von persistenten Parametern speichern, die für Ihre einzelnen Benutzer eindeutig sind (bis ihre Sitzung abläuft oder sie sich abmelden). Sie können hier mehr darüber lesen: ActionController: Zugriff auf die Sitzung