0

我有一个包含标题、子标题和可能的一个或多个按钮的部分。它用于许多不同的页面。通常页面不需要按钮,所以我只需将标题和可选的子标题传递给部分。然而,有时页面需要一个或多个按钮,而我设法允许传入任意数量的按钮的唯一方法是使用 content_for。我的部分看起来像这样:

<% if defined? page_title %>
    <header class="pageHeader">
        <div class="page-details">
            <h3><%= page_title %></h3>
            <% if defined? page_subtitle %>
                <p><%= page_subtitle %></p>
            <% end %>
        </div>
        <ul class="crud-menu nav-pills">
            <%= content_for :page_header_buttons %>
        </ul>
    </header>
<% end %>

这个使用 content_for 很讨厌。有什么办法可以将列表项/按钮传递到这个部分?我还能如何处理这种情况?

4

1 回答 1

1

您可以将此部分转换为布局:

<% if defined? page_title %>
    <header class="pageHeader">
        <div class="page-details">
             <h3><%= page_title %></h3>
            <% if defined? page_subtitle %>
                 <p><%= page_subtitle %></p>
            <% end %>
        </div>
        <ul class="crud-menu nav-pills">
            <%= yield %>
        </ul>
    </header>
<% end %>

你会这样渲染它:

<%= render layout: "your_partial_above", locals: { page_title: "page title } do %>
    <%= render "partial_with_your_buttons" %>
<% end %>
于 2012-08-21T17:38:18.970 回答