Будьте осторожны, вы не должны настраивать просмотр данных в своих контроллерах, как рекомендовали некоторые из приведенных выше постов. Он нарушает шаблон MVC и создает ненужные объекты, которые не будут использоваться нигде, кроме HTML-версий ваших страниц.
Еще одна вещь, о которой следует помнить, это повышенный риск при назначении тега body внутри логического блока - зачем рисковать, когда страница не выводит тег body (ломая страницу), если вам это не нужно? Пример выше:
<%= yield :body || "<body>" %>
Кто-то, возможно, не совсем понимает ваше значение в дочерней части, и вы просто увеличиваете дублирование тега body, что означает, что у вас есть больше мест для поиска, если кто-то не завершает тег, и т. Д. Нет необходимости этот риск. Более разумное решение - уступить только классу. HAML позволит вам предоставлять дополнительные элементы класса, например:
%body{ id: yield(:body_id), class: yield(:body_class) }
И затем установите эти значения в вашем представлении:
- content_for(:body_class) { 'dashboard business' }
Мне бы понравилось решение, позволяющее нескольким частям добавлять классы в один блок yield, но пока не нашло нехакерского способа сделать это.