Rails 3, nur das Rendern teilweise, wenn ein Benutzer angemeldet ist

Auf Rails 3.1 app, ich habe eine Methode namens user_logged_in? von Auszudenken, die ich verwenden möchten, für die Wiedergabe einer teilweise selektiv. Hier ist der code in layouts/application.html-Code.erb:

<% if user_logged_in? %>
<%= render :partial => "home/statusbar" %>
<% end %>

Verwendet es eine teilweise von einem anderen controller. Dies ist die partielle:

<div id="status_bar">  
  Signed in as <%= link_to current_user.name, edit_user_registration_path %>
</div>

Tritt ein Fehler auf current_user.name (nicht definierte Methode), weil current_user ist nil. Ich konnte das user_logged_in? überprüfen Sie das innere des teilweise, aber ich denke, es wäre geringfügig effizienter, wenn es in der Ansicht.

Konnte Sie mir direkt an, was die best practices sind, oder wie kann ich das überwinden der nicht definierte Methode Fehler? Ist es normal, dass die Schienen überprüft den code der Vorlage, obwohl es in einem if block, nicht?

InformationsquelleAutor joseph | 2011-07-21
Schreibe einen Kommentar