В 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, поэтому, когда он находит тег <% = what%>, он просто вызывает любое. Так что, в моем случае, это приводит к попытке выполнить
(bicolor_table(services) do |service|).to_s
С очевидными (плохими) последствиями. Вопрос в следующем: я не прав в принципе (например, «помощники не должны работать таким образом, используйте вместо этого…») или мне нужно искать обходной путь?
Спасибо.