2010-11-27 6 views

Antwort

2

Wo ist der id Parameter mit URL /dashboard? Oder geht es um den "aktuellen" Benutzer?

Wenn diese Seiten über verschiedene Benutzer sind, einer von Parameter, der andere von Sitzung. Dann brauchen Sie eigentlich unterschiedliche Controller für diese 2 URLs.

Hier ist, wie ich es tun würde:

routes.rb

match "dashboard" => 'users#show', :defaults => { :id => -1 } 

UsersController.rb

def show 
    @user = User.find(params[:id] == -1 ? current_user_id : params[:id]) 
    ... 

ich Ihnen die Implementierung von current_user_id tun lassen: -)

+0

Es handelt sich um den current_user. Wenn ich mich anmelde, möchte ich, dass die URL/das Dashboard anstelle von/users /: id anzeigt, wie es jetzt angezeigt wird. – donald

+0

@donald: Meinst du, die Login-Seite sollte von '/ Dashboard' bedient werden, oder dass der Benutzer nach der Anmeldung an'/dashboard' weitergeleitet werden sollte? – zetetic

+0

@zetetic sollte nach dem Login in/dashboard weitergeleitet werden. – donald

1
match "users/:id" => "YourDashboardController#dashboard" 
+0

Es funktioniert nicht . Nicht die/users /: id oder das/dashboard. – donald

+0

@donald: bearbeitet, müssen Sie den Controller angeben, in dem die Dashboard-Aktion vorhanden ist. –

+0

Es funktioniert nicht. Es sagt, es gibt keine Aktion. – donald

0

verwenden match "users /: id" => "YourDashboardController # Armaturenbrett"

0

man so etwas versucht haben:

match "/dashboard", :to => "users#show", :as => "dashboard" 

und nach der Anmeldung Umleitung dashboard_path

+0

Benutzer ohne ID nicht gefunden. Es funktioniert nicht. – donald