I am rendering a rails partial and I want to alternate the background color when it renders the partial. I know that is not super clear so here is an example of what I want to do:
Row One grey Background Row Two yellow background Row Three grey Background Row Four yellow backgroundThis is the view code that I am using
<table>
<%= render :partial => 'row' :collection => @rows %>
</table>
the _row.html.erb partial looks like this
<tr bgcolor="#AAAAAA">
<td><%= row.name %></td>
</tr>
The problem is I do not know how to change the background color for every other row. Is there a way to do this?
You could use the Cycle helper. Something like this:
<tr class="<%= cycle("even", "odd") %>">
<td><%= row.name %></td>
</tr>
Or in your case use bgcolor instead, although i would recomend using css classes.
You can cycle through more than two values: cycle(‘first’, ‘second’, ‘third’, ‘and_more’).
There is also: reset_cycle(‘cycle_name’) This makes sure that on each iteration, you will start again with your first value of the cycle list.
Check the rails documentation for more examples.