【发布时间】:2011-08-14 15:19:19
【问题描述】:
下面的视图代码有点冗长,所以让我先陈述我的问题和疑问。我有多种布局,每种布局的代码略有不同。目前,我试图通过使用部分来限制任何冗余。但是,我仍然想知道它是否可以更干燥。显然,保持事物尽可能 DRY 是核心原则之一,但我想知道在某些情况下,只要保持一致(即使它不是 DRY)仍然可以为您提供所需的效率和可维护性,这值得付出多少努力。那么,鉴于此,您会推荐什么?顺便说一句,我的环境是 Rails 2.3.12。
# LAYOUT #1
<%= render :partial => 'shared/html_header' %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<%= render :partial => "shared/head" %>
<body>
<%= render :partial => "shared/announcements" %>
<div id="outer">
<%= render :partial => 'shared/banner' %>
<%= render :partial => 'shared/nav' %>
<div id="main">
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<%= render :partial => 'shared/content' %>
</td>
<td><%= spacer_img(:width => 10) %></td>
<td>
<%= render(:partial => 'shared/sidebar_a', :locals => {:box_color => 'greenBox'}) %>
<%= render(:partial => 'shared/sidebar_b', :locals => {:box_color => 'blueBox'}) %>
<%= render(:partial => 'shared/sidebar_c', :locals => {:box_color => 'redBox'}) %>
</td>
</tr>
</table>
</div>
<%= render :partial => 'shared/footer' %>
</div>
<%= render :partial => 'shared/google_analytics_script' %>
</body>
</html>
# LAYOUT #2
<%= render :partial => 'shared/html_header' %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<%= render :partial => "shared/head" %>
<body>
<%= render :partial => "shared/announcements" %>
<div id="outer">
<%= render :partial => 'shared/banner' %>
<%= render :partial => 'shared/nav' %>
<div id="main">
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<%= render :partial => 'shared/enticement_rendering' %>
<%= render :partial => 'shared/content' %>
</td>
<td><%= spacer_img(:width => 5) %></td>
<td>
<%= render(:partial => 'shared/sidebar_x', :locals => {:box_color => 'greenBox'}) %>
<%= render(:partial => 'shared/sidebar_y', :locals => {:box_color => 'blueBox'}) %>
<%= render(:partial => 'shared/sidebar_z', :locals => {:box_color => 'redBox'}) %>
</td>
</tr>
</table>
</div>
<%= render :partial => 'shared/footer' %>
</div>
<%= update_lb_javascript %>
<%= render :partial => 'shared/google_analytics_script' %>
</body>
</html>
【问题讨论】:
标签: ruby-on-rails model-view-controller layout dry