2010-12-15 3 views
0

Ich experimentiere mit ein paar Möglichkeiten, dies zu tun, aber nur gedacht, ich würde die Galerie fragen.Die meisten Rails-Art, eine statische Homepage zu bedienen, wenn nicht angemeldet

Ich möchte, dass die root-Seite meiner App (/) eines von zwei Dingen ist, je nachdem, ob ein Benutzer angemeldet ist oder nicht.

Wenn sie nicht eingeloggt sind, möchte ich eine statische Seite mit statischen Informationen und einem Login-Formular einrichten.

Wenn sie angemeldet sind, möchte ich, dass sie auf der Hauptindexseite meiner App (/ rechnungen /) angezeigt werden.

Ich benutze authlogic, um Benutzeranmeldung zu verwalten.

Einige der Ideen, die ich dafür hatte, scheinen unnötig verschachtelt zu sein (und das ist Rails - es sollte einfach sein, nicht wahr?) Und ich denke, jemand weiß bereits einen besseren Weg.

Antwort

1

homepage_controller

def index 
respond_to do |format| 
    if current_user 
    format.html { render :partial => 'view', :layout => 'nonuser' } 
    elsif !current_user 
    format.html { render :partial => 'view', :layout => 'user' } 
    end 
end 

So etwas wie das?

1

Ich würde die folgende Methodendefinition zu einem Controller hinzufügen, um ein Layout dort zu definieren. Wenn das Verhalten global wäre, wäre application_controller der Platz für diese Methodendefinition.

layout :choose_layout 

def choose_layout 
    if current_user 
     return 'user_view' 
    end 
    return 'non_user_view' 
end 
Verwandte Themen