Created
January 8, 2012 20:09
-
-
Save adrianshort/1579512 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- @last_date = '' | |
- @results.each do |row| | |
- if row.election_d != @last_date | |
- @last_date = row.election_d | |
%h2= row.election_d | |
%table | |
%tr | |
%td{ :style => "background-color: #{row.party_colour}" } | |
| |
%td= row.party_name | |
%td= row.c_surname | |
%td= to_ordinal(row.position) | |
%td= commify(row.votes) |
You have to nest the %tr inside the %table to work in haml..
You could consider some other approach like grouping the records by election_d before and then iterating.
Assiming you're on ruby 1.9, you could try something like
@results.group_by{|result| result.election_d }.each do |election_date, row| %h2= election_date %table %tr %td
Thanks for that. I hadn't heard of group_by before but I can see how that's useful.
In the end I simplified it by using nested loops around first the elections and then the candidacies for each election as in this commit.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Haml issues in a Sinatra app. I'm trying to output a collection of tables using data from a single array. This kind of thing works fine in non-significant-whitespace templates but Haml (understandably) can't work out that the %h2 and %table are meant to enclose the following %trs in the block below. Any ideas for a workaround? I could generate each table from a separate query but it's preferable to do them all at once.