Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

conditional formatting in rails partials

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 background
  • sorry stackoverflow seams to prevent the background colors from being shown but I think this makes my idea clear

This 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?

like image 613
Josh Moore Avatar asked Nov 04 '08 07:11

Josh Moore


1 Answers

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.

like image 106
Kristian Avatar answered Sep 30 '22 08:09

Kristian