В приложении Rails 3.1 у меня есть метод под названием user_logged_in?
от Devise, который я хочу использовать для выборочного рендеринга части. Вот код в layout / application.html.erb:
<% if user_logged_in? %>
<%= render :partial => "home/statusbar" %>
<% end %>
Он использует партиал с другого контроллера. Это частичное:
<div id="status_bar">
Signed in as <%= link_to current_user.name, edit_user_registration_path %>
</div>
Ошибка возникает в current_user.name
(неопределенный метод), потому что current_user
равно nil
. Я мог бы переместить проверку user_logged_in?
внутри партиала, но я думаю, что было бы немного эффективнее, если бы она находилась в представлении.
Не могли бы вы рассказать мне о лучших практиках или о том, как я может преодолеть ошибку неопределенного метода? Нормально ли, что Rails проверяет код шаблона, даже если он находится в блоке if
, который дает сбой?