2016-05-21 5 views

Antwort

2

Sie können diese verwenden:

unauthenticated :user do 
    root :to => 'main#index' 
end 

authenticated :user do 
    # Rails 3 syntax 
    # root :to => "main#dashboard" 
    # Rails 4 requires the 'as' option to give it a unique name 
    root :to => "main#dashboard", :as => "authenticated_root" 
end 

Dies ist der Mechanismus, durch Devise für die Wieder Verwurzelung authentifizierten Benutzern zur Verfügung gestellt.

Die Zeile root :to => 'main#index' ist die Standardzeile, die Rails in Ihrer config/routes.rb platziert, wenn die Anwendung zum ersten Mal erstellt wird. Sie können es wickeln im unauthenticated :user do .. end Block, um sicherzustellen, dass es gilt für den Benutzer, die nicht angemeldet sind.

Dies gibt definitive Wurzel-Routing für alle Benutzer, basierend darauf, ob sie angemeldet sind.

+0

Könnten Sie bitte präzisieren, wie Besucher zu "index" weitergeleitet werden? Vielleicht mit einer Root-Direktive außerhalb des 'authentifizierten' Blocks? – rdupz

1

Sie können Sie wie folgt in Anwendungscontroller (application_controller.rb)

protected 
def authenticate_user! 
if user_signed_in? 
    # navigate the user to dashboard 
else 
    # redirect to index 
end 

Dieses Verfahren kann dann von einem anderen Controller (s) unter Verwendung von before_filter Beispiel aufgerufen werden:

class SomeController < ApplicationController 
    before_filter :authenticate_user! 
end 
Verwandte Themen