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を使用しないため、<%= any%>タグが見つかると、whatever.to_sを呼び出すだけです。したがって、私の場合、これは実行しようとする結果になります
(bicolor_table(services) do |service|).to_s
明らかな(悪い)結果を伴います。問題は、私は原則的に間違っているのでしょうか(「ヘルパーはこのように作業するべきではなく、代わりに使用する必要があります…」など)、または回避策を探す必要がありますか?
ありがとう。