管理共享和非共享内容的最佳方法是什么?

时间:2015-03-04 10:11:38

标签: ruby-on-rails ruby-on-rails-4

我想获得类似以下方案的观点:

enter image description here

我有一个包含所有视图的公共文本的公共标题,但每个模型和每个模型中的不同图标每个操作的不同按钮。

我开始在_header中渲染application.html.erb,但我不知道是否是更改每个Controller视图的图标以及如何根据Controller操作更改标题内容的最佳方法。

我想知道获得它的'铁路'方式是什么。

1 个答案:

答案 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 %>