Rails 3 w / Devise: Wie setze ich zwei separate Homepages basierend darauf, ob der Benutzer authentifiziert ist oder nicht?

8

Ich verwende Rails 3 und Devise, um eine App zu erstellen, durch die Nutzer auf die Website gelangen und eine Startseite mit einem Login und einem Anmeldeformular angezeigt wird. Diese Seite hat einen eigenen Controller ("homepage"), also ist die Route

%Vor%

Ich möchte eine andere Startseite anzeigen, wenn die Benutzer bereits angemeldet sind. Dies würde dem Wurzelpunkt auf

entsprechen %Vor%

Gibt es eine Möglichkeit, in routes.rb eine bedingte Route einzurichten, mit der ich überprüfen kann, ob der Benutzer authentifiziert wurde, bevor er sie an eine dieser Homepages weiterleitet?

Ich habe versucht, den folgenden Code zu verwenden, aber wenn ich nicht eingeloggt bin, fordert Devise mich auf, sich einzuloggen, also funktioniert nur die erste Route.

%Vor%

Ich möchte auch, dass die URL in beiden Fällen auf www.example.com zeigt, sodass www.example.com/dashboard/index und www.example.com/homepage/index niemals im Browser angezeigt werden. p>

Tausend Dank !!!

    
Andrei Polmolea 17.01.2012, 00:37
quelle

4 Antworten

13

Probieren Sie das aus, es ist jedoch spezifisch für Warden / Devise.

%Vor%     
Bradley Priest 17.01.2012, 01:10
quelle
5

In Ihrem HomeController:

%Vor%     
Nicolas Garnil 17.01.2012 00:43
quelle
2

(Genau dieselbe Frage, die hier beantwortet wurde: Ссылка . Die Antwort hier auch für die Referenz von anderen hinzufügen.)

In Ihrem routes.rb :

%Vor%

Dies stellt sicher, dass root_url für alle authentifizierten Benutzer dashboard#index

ist

Zu Ihrer Information: Ссылка

    
pungoyal 26.04.2013 10:08
quelle
2

Hier ist die richtige Antwort mit Rails 4

%Vor%

Ich habe versucht, dies zu der akzeptierten Antwort hinzuzufügen / zu bearbeiten, aber es ist zu viel von einer Bearbeitung, um anscheinend akzeptiert zu werden. Wie auch immer, Abstimmung für die angenommene Antwort (von Bradley), es half mir, mit diesem zu kommen:)

    
Nycen 06.11.2014 16:27
quelle