在 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
有明显的(坏的)后果。问题是:我原则上是错的(比如“助手不应该以这种方式工作,而是使用......”)还是我应该寻找解决方法?
谢谢。