在Rails 3我用下面的幫助,以便傭工得到偶奇色表:轉換的Rails 3至梁2:塊使用
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的問題是梁2不使用Erubis,所以當它找到一個<%=無論%>標籤,它只是調用whatever.to_s。所以,在我的情況下,這個結果試圖執行
(bicolor_table(services) do |service|).to_s
有明顯的(壞)後果。問題是:我原則上錯了嗎(比如「助手不應該以這種方式工作,請改用...」)還是應該尋找解決方法?
謝謝。
這是實現我需要在這個場合有什麼好和有效的方式,但我仍想知道如果傳遞塊助手是接受的行爲。感謝您的回答! :-) – 2010-09-02 21:23:47