Многократный выход из Частичного

#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>