У меня есть 'панель пользователя' с надписью 'Signed as current_user.name', которую я хочу визуализировать в большинстве (но не во всех) моих видах. Каков предпочтительный / самый чистый способ реализации этого? Т.е. это оператор if в макете приложения? Частичное, которое я рендерил в каждом представлении, где я хочу, чтобы оно появилось?
Если я правильно понимаю вопрос, у вас есть функциональные возможности в шаблоне макета, которые должны отображаться условно в зависимости от просматриваемого представления, а не только от состояния сеанса, как в случае входа в систему. Для этого вы можете использовать content_for в представлениях, позволяющих установить соответствующее содержимое в представлениях.
Вы можете использовать второй макет, а затем для действий, в которых вы не хотите, чтобы эта панель пользователя показала, что вы используете другой макет:
render :layout => "not_logged_in"