Alb*_*ini 4 ruby-on-rails helper view-helpers
在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
Run Code Online (Sandbox Code Playgroud)
我在我的观点中使用它:
<%= bicolor_table(services) do |service| %>
<td><%= image_tag service.area.small_image %></td>
<td><%= link_to service.title, service %></td>
<% end %>
Run Code Online (Sandbox Code Playgroud)
现在,我必须将应用程序迁移到Rails 2.问题是Rails 2不使用Erubis,因此当它找到<%= whatever%>标记时,它只调用whatever.to_s.所以,在我的情况下,这导致尝试执行
(bicolor_table(services) do |service|).to_s
Run Code Online (Sandbox Code Playgroud)
带来明显(坏)的后果.问题是:我原则上是错的(比如"帮助者不应该这样工作,而是使用......")或者我应该寻找解决方法吗?
谢谢.
这可能无法解答您的问题,但使用该cycle命令可以更简单地实现偶数/奇数颜色表
@items = [1,2,3,4]
<table>
<% @items.each do |item| %>
<tr class="<%= cycle("even", "odd") -%>">
<td>item</td>
</tr>
<% end %>
</table>
Run Code Online (Sandbox Code Playgroud)
希望这能为您介绍一个很酷的Rails实用程序
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |