Parker Thompson
2006-Jan-25 06:47 UTC
[Rails] inserting column headings between grouped rows
Hello all, I have what is conceptually a pretty simple poblem, but can''t think of an obvious solution. I have a group of objects (@items), that I wish to render as rows. Items have dates, and I wish to group them by that date, inserting a header row each time the date changes e.g.: header row row 11/11/2004 row 11/11/2004 header row row 11/23/2004 I''m currently rendering the rows like so: render :partial => ''item'', :collection => @items I''m curious if there''s a a way to keep track of a date value between insert a spacer each time it changes. I couldn''t find one looking over the docs. Anyone had to deal with this? As always, any help is greatly apreciated, pt. -- Parker Thompson http://www.parkert.com/ 510.541.0125
Parker: I hope someone will offer one of those super-efficient solutions. For now, I''d do what you want without using the partial. I''d do: @items.each do |item| then I could just check the date field against the previous entry and use an if block to display the row header when the date changes. That said, there is probably something much better. Thanks for the question, I look forward to the answer. bruce On 24-Jan-06, at 11:47 PM, Parker Thompson wrote:> Hello all, > > I have what is conceptually a pretty simple poblem, but can''t think of > an obvious solution. I have a group of objects (@items), that I wish > to render as rows. Items have dates, and I wish to group them by that > date, inserting a header row each time the date changes e.g.: > > header row > row 11/11/2004 > row 11/11/2004 > header row > row 11/23/2004 > > I''m currently rendering the rows like so: > > render :partial => ''item'', :collection => @items > > I''m curious if there''s a a way to keep track of a date value between > insert a spacer each time it changes. I couldn''t find one looking > over the docs. Anyone had to deal with this? > > As always, any help is greatly apreciated, > > pt. > -- > Parker Thompson > http://www.parkert.com/ > 510.541.0125 > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails
Might not be really flashy, but it works: current = nil @items.each do |item| if(current != item) print_your_row_header() current = item end print_the_item() end -- Posted via http://www.ruby-forum.com/.