我有很多不同的网页,但大多数都属于 6 或 7 个页面类别中的 1 个。对于这些类别的网页中的每一个,我的外观和感觉都略有不同,例如不同的背景颜色/图像。我有以下内容views/layout/application.html.erb
:
<header class="sub<% if content_for?(:page_type) %> <%= yield(:page_type) %><% end %>">
在每一个视图中,我都有:
<% content_for :page_type, 'information' %>
但是对每个网页都这样做真的很痛苦,当我想改变周围的东西时,我总是不得不搞乱这些(我有很多页面)。所以,相反,我想只使用一个变量:
<header class="sub<%= @page_type ? ' ' + @page_type : '' %>">
和意见:
<% @page_type = 'information' %>
优点是我可以before_filter :set_page_type
在控制器中做一个并为它控制的所有视图设置一次页面类型(一个很大的帮助)。
也许对我来说最好的办法就是使用 URL 的第一个文件夹作为网页的类别。我将不得不重组 URL,但无论如何这样做可能是有意义的。我确实有一些必须保留的顶级页面。
这必须是一个相当普遍的情况,对大多数页面进行分类并在布局中使用该分类的最佳方法是什么?