我有一個基於Rails的網站,有一個基本的兩列布局。在右邊是一個有不同的側欄(我們只是說)垂直小部件。根據您訪問的頁面,可以將小部件包含在內,排除在外,並且可以按不同的順序排列。用於離:具有多個頁面佈局的Rails應用程序 - 如何幹起來?
主頁(應用)
頁面內容...
SIDEBAR
- 小窗口的
- 的widget乙
- 的widgetÇ
頁碼X
頁面內容...
SIDEBAR
- 的Widget d
- 小部件
- 的WidgetÇ
Y形
頁面內容...
SIDEBAR
- 部件e
- 小部件
- 的Widget乙
- 的WidgetÇ
現在我正在顯示特定頁面的小部件的方法是不是很乾。我爲每個頁面創建一個佈局,然後一遍又一遍地複製和粘貼相同的HTML部分和小部件。對於前:
application.html.erb
<%= render :partial => 'shared/html_header' %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<%= render :partial => "shared/head" %>
<body>
<div id="outer">
<%= render :partial => 'shared/banner' %>
<%= render :partial => 'shared/nav' %>
<div id="main">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%;">
<tr style="vertical-align:top;">
<td style="width:759px;">
<%= render :partial => 'shared/content' %>
</td>
<td><%= image_tag("spacer.gif", :width => "5") %></td>
<td style="width:252px;">
<%= render :partial => 'shared/widget_a' %>
<%= image_tag("spacer.gif", :height => "10") %>
<%= render :partial => 'shared/widget_b' %>
<%= image_tag("spacer.gif", :height => "10") %>
<%= render :partial => 'shared/widget_c' %>
<%= image_tag("spacer.gif", :height => "10") %>
</td>
</tr>
</table>
</div>
<%= render :partial => 'shared/footer' %>
</div>
<%= render :partial => 'shared/user_voice_widget_script' %>
<%= render :partial => 'shared/google_analytics_script' %>
</body>
</html>
我基本上只是重複這種模式對其他頁面佈局,但與特定頁面的小部件。看起來不太乾。
我在想,必須有一個更有效的方法來做到這一點。有什麼建議麼?