RoR 的第二周(没有编程背景)。我有一点问题,我正在做一个 Metacritic 类型的网站。到处都会有收视率。我决定 0 到 33 = 红色 34 到 66 = 橙色 67 到 100 = 绿色 看起来像这样
索引(控制器:显示)
<td><% if show.reviews.count == 0 %>0
<% elsif show.reviews.average("rating").between?(33, 66) %>
<table class="orange">
<tr>
<td><b><%= number_with_precision(show.reviews.average("rating"), :precision => 0) %></b></td>
</tr>
</table>
<% elsif show.reviews.average("rating").between?(66, 100) %>
<table class="green">
<tr>
<td><%= number_with_precision(show.reviews.average("rating"), :precision => 0) %></td>
</tr>
</table>
<% elsif show.reviews.average("rating").between?(00, 33) %>
<table class="red">
<tr>
<td><%= number_with_precision(show.reviews.average("rating"), :precision => 0) %></td>
</tr>
</table>
<% end %>
</td>
我的问题是我需要大量重复该代码,请参阅(我才刚刚开始:show(controller show)
<p>
Note: <% if @ratings == 0 %>0
<% elsif @ratings.between?(33, 66) %>
<table class="orange">
<tr>
<td><b><%= number_with_precision(@ratings, :precision => 0) %></b></td>
</tr>
</table>
<% elsif @ratings.between?(66, 100) %>
<table class="green">
<tr>
<td><%= number_with_precision(@ratings, :precision => 0) %></td>
</tr>
</table>
<% elsif @ratings.between?(00, 33) %>
<table class="red">
<tr>
<td><%= number_with_precision(@ratings, :precision => 0) %></td>
</tr>
</table>
<% end %>
</p>
有人告诉我这应该是一个模型,但我真的不知道怎么写。有什么帮助吗?