在 Rails 3 中,我使用以下助手来获得偶数-奇数颜色的表格:
def bicolor_table(collection, classes = [], &block)
string = ""
even = 0
for item in collection
string << content_tag(:tr, :class => (((even % 2 == 0) ? "even " : "odd ") + classes.join(" "))) do
yield(item)
end
even = 1 - even
end
return string
end
我在我的观点中使用它,如下所示:
<%= bicolor_table(services) do |service| %>
<td><%= image_tag service.area.small_image %></td>
<td><%= link_to service.title, service %></td>
<% end %>
现在,我必须将应用程序迁移到 Rails 2。问题是 Rails 2 不使用 Erubis,因此当它找到 标记时,它只会调用whatever.to_s。所以,就我而言,这会导致尝试执行
(bicolor_table(services) do |service|).to_s
具有明显的(坏的)后果。问题是:我原则上错了(比如“助手不应该以这种方式工作,而是使用......”)还是我应该寻找解决方法?
Thanks.
这可能无法回答您的问题,但是有一种更简单的方法来实现偶数/奇数颜色表,使用cycle
command
@items = [1,2,3,4]
<table>
<% @items.each do |item| %>
<tr class="<%= cycle("even", "odd") -%>">
<td>item</td>
</tr>
<% end %>
</table>
希望本文向您介绍一个很酷的 Rails 实用程序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)