我想获得类似以下方案的观点:
我有一个包含所有视图的公共文本的公共标题,但每个模型和每个模型中的不同图标每个操作的不同按钮。
我开始在_header
中渲染application.html.erb
,但我不知道是否是更改每个Controller视图的图标以及如何根据Controller操作更改标题内容的最佳方法。
我想知道获得它的'铁路'方式是什么。
答案 0 :(得分:0)
我找到了两个解决方案。我选择了第二个:
答:部分布局:
products/index.html.erb
中的:
<%= render layout: 'shared/admin_header' do %>
<%= render layout: 'shared/header_main' do %>
<i class="fa fa-tag fa-fw"></i>
<% end %>
<%= render layout: 'shared/header_right' do %>
<%= link_to "Add a product", new_admin_product_path, class: ["btn", "btn-primary", "pull-right"] %>
<% end %>
<% end %>
shared/admin_header.html.erb
中的:
<nav class="navbar navbar-default navbar-fixed-top admin-header">
<%= yield %>
</nav>
shared/_header_main.html.erb
中的:
<h1 class="header-main">
<%= yield %>
</h1>
shared/_header_right.html.erb
中的:
<div class="header-right">
<%= yield %>
</div>
B:使用content_for
和多个yield
区域:
application.html.erb
中的:
<nav class="navbar navbar-default navbar-fixed-top admin-header">
<h1 class="header-main">
<%= yield :header_main %>
</h1>
<div class="header-right">
<%= yield :header_right%>
</div>
</nav>
products/index.html.erb
中的:
<%= content_for :header_main do %>
<i class="fa fa-tag fa-fw"></i>
<% end %>
<%= content_for :header_right do %>
<%= link_to "Add a product", new_admin_product_path, class: ["btn", "btn-primary", "pull-right"] %>
<%# MORE CONTENT %>
<% end %>