#ruby-on-rails #layout #ruby-on-rails-4 #partial #yield
#ruby-on-rails #макет #ruby-on-rails-4 #частичный #выход
Вопрос:
У меня есть частичное, которое поддерживает значение заголовка и либо значение субтитра, либо блок:
<header class="PrimaryHeader">
<h1 class="Title"><%= title %></h1>
<% if defined? subtitle %>
<div class="Subtitle"><%= subtitle %></div>
<% else %>
<%= yield %>
<% end %>
</header>
Которые я визуализирую следующим образом:
<%= render layout: 'shared/headers/primary_header', locals: {title: "Edit Gallery"} do %>
<div class="special">Subtitle</div>
<% end %>
Как я могу также поддерживать дополнительный блок для заголовка?
В основном эквивалент:
<header class="PrimaryHeader">
<% if defined? title %>
<h1 class="Title"><%= title %></h1>
<% else %>
<%= yield %>
<% end %>
<% if defined? subtitle %>
<div class="Subtitle"><%= subtitle %></div>
<% else %>
<%= yield %>
<% end %>
</header>
Ответ №1:
Вместо того чтобы использовать местных жителей подобным образом, я бы, вероятно, использовал несколько урожайных регионов. Вы могли бы сделать это следующим образом:
<header class='PrimaryHeader'>
<%= content_tag(:h1, yield :title, class: 'Title') if content_for?(:title) %>
<%= content_tag(:h2, yield :subtitle, class: 'Subtitle') if content_for?(:subtitle) %>
<%= yield %>
</header>