Ruby on Rails Else Wenn Frage

7

Ich habe eine Anwendung, wo ich im Layout ein user_name div habe, das verschiedene Dinge anzeigt, je nachdem, ob sie eingeloggt sind oder nicht, ein Admin, usw. Im Moment ist mein Code folgender:

%Vor%

Ich habe bereits einen current_user Helfer und alles funktionierte gut, wenn der Code nur war:

%Vor%

Wenn ich jetzt eine elsif-Anweisung mache, funktioniert es, wenn ich als Administrator angemeldet bin, und ich bekomme den Text mit den richtigen Links angezeigt. Wenn ich kein Admin-Benutzer bin und ausgeloggt bin, bekomme ich eine undefinierte Methode 'role' für nil: NilClass error ... Auch mein current_user Zeug ist in meinem Application Controller wie folgt deklariert:

%Vor%

Irgendwelche Ideen, was ich tun kann, um das gewünschte Ergebnis anzuzeigen? "Wenn sie ein Benutzer mit dem Rollenattribut gleich admin sind, erhalten sie etwas Text und die eingeloggten Links, wenn sie nur ein Benutzer sind, erhalten sie die eingeloggten Links, und wenn sie nicht eingeloggt sind, erhalten sie die Register- und Login-Links .

Danke!

    
Trevor Nederlof 21.01.2010, 16:56
quelle

3 Antworten

11
%Vor%

oder mit Rails & gt; = 2.3

%Vor%     
Simone Carletti 21.01.2010 16:59
quelle
5

Blenden Sie die Rollenprüfung in der aktuellen Benutzerschleife aus, was den Nebeneffekt hat, Ihre Bedingung zu vereinfachen.

%Vor%     
Eric 21.01.2010 17:37
quelle
3
%Vor%

Dies sollte den Fehler verhindern, wenn kein Benutzer angemeldet ist, aber Sie könnten den gesamten Block restrukturieren, um die redundanten Tests zu entfernen, da current_user keine Nul ist.

    
Adam Crossland 21.01.2010 17:00
quelle

Tags und Links