2 Stimmen

Wie man den Benutzer auf die Anmeldeseite umleitet, wenn der Benutzer nicht angemeldet ist

Wenn der Benutzer angemeldet ist, speichern wir seine Benutzer-ID in der Sitzung.

session[:user_id] = user.id

Jetzt möchten wir, dass der Benutzer bei allen anderen Links auf unserer Website umgeleitet wird, wenn session[:user_id] == nil

Meiner Meinung nach sollte dies in jedem der Methoden des Controllers erledigt werden.

def show_customers
   if session[:user_id] == nil
     redirect_to (:controller => "authentication", :action => "login")
   #Hier kommt der Code für show_customers hin
end

Aber das müsste in jeder Methode jedes Controllers gemacht werden.

Gibt es eine vernünftigere Rails-Methode, um dies zu tun?

5voto

Browsera Punkte 199

Verwenden Sie einen before_filter, um zu validieren, dass die Sitzung gültig ist, und wenn Sie es nicht in jedem Controller platzieren möchten, platzieren Sie es in Ihrem application_controller (da alle Controller davon erben). Sie können auch einfach die Aktionen ausschließen/einschränken, für die der Filter aufgerufen wird, indem Sie die Methode in Ihren Controllern überschreiben.

3voto

TomaszSobczak Punkte 2860

Verwenden Sie einen before_filter.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X