Conversión de Rails 3 a Rails 2: ayudantes con bloques
En Rails 3 utilizo el siguiente ayudante para obtener una tabla de colores pares e impares:
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
Y lo uso en mis puntos de vista así:
<%= bicolor_table(services) do |service| %>
<td><%= image_tag service.area.small_image %></td>
<td><%= link_to service.title, service %></td>
<% end %>
Ahora, tengo que migrar la aplicación a Rails 2. El problema es que Rails 2 no usa Erubis, por lo que cuando encuentra una etiqueta <% = whatever%>, simplemente llama a whatever.to_s. Entonces, en mi caso, este resultado en tratar de ejecutar
(bicolor_table(services) do |service|).to_s
Con las obvias (malas) consecuencias. La pregunta es: ¿estoy equivocado en principio (como "los ayudantes no deberían funcionar de esta manera, en su lugar usar ...") o debería buscar una solución?
Gracias.