Fixing massive typo:

<% 
headers = [
  ["Summary", "summary"],
  ["Term", "term"],
  ["Start Date", "start_date"]
]
%>

<table>
  <% headers.each do |header| %>
    <tr>
      <th><% header[0] %></th>
      <% @colletion.each do |item| %>
        <td><%= item.send(header[1]) %></td>
      <% end %>
    </tr>
  <% end %>
</table>




On Monday, September 17, 2012 at 12:04 PM, James Miller wrote:

> Something like:
> 
> <% 
> headers = [
>   ["Summary", "summary"],
>   ["Term", "term"],
>   ["Start Date", "start_date"]
> ]
> %>
> 
> <table>
>   <% headers.each do |header| %>
>     <tr><% header[0] %></tr>
>     <% @collection.each do |item| %>
>       <td><%= item.send(header[1]) %></td>
>     <% end %>
>   <% end %>
> </table>
> 
> 
> On Monday, September 17, 2012 at 11:56 AM, Chris McCann wrote:
> 
> > James,
> > 
> > Can you elaborate on what you mean by "then iterate over instances once 
> > within that block"?  There has to be a new row for each model field that I 
> > want to display, with the value from an instance appearing in its own <td> 
> > in that row.
> > 
> > CM
> > 
> > On Mon, Sep 17, 2012 at 11:53 AM, James Miller <[email protected] 
> > (mailto:[email protected])> wrote:
> > > If you don't like iterating over the instances a dozen times, you could 
> > > make an array of the headers, iterate over the headers, then iterate over 
> > > instances once within that block. 
> > > 
> > > James
> > > 
> > > On Monday, September 17, 2012 at 11:42 AM, Chris McCann wrote:
> > > 
> > > > Scott,
> > > > 
> > > > Thanks for the speedy reply!
> > > > 
> > > > The array approach was what I originally came up with but it felt a bit 
> > > > raw.  Seems like there should some sort of <%= content_for ... %> 
> > > > approach or similar that would be more elegant.
> > > > 
> > > > It's not really an issue of performance since all the data needed will 
> > > > be in memory when the collection is initially loaded.  It's about 
> > > > trying not to create this gawd-awful ugly view with a dozen <% 
> > > > @instances.each do |instance| %> calls to loop through the model 
> > > > objects each time I want to create a row of data.  
> > > > 
> > > > It just "feels" wrong and I'm hoping someone has tackled this before 
> > > > and come up with a clever solution.
> > > > 
> > > > Cheers,
> > > > 
> > > > Chris
> > > > 
> > > > On Mon, Sep 17, 2012 at 11:37 AM, Scott Olmsted <[email protected] 
> > > > (mailto:[email protected])> wrote:
> > > > > Chris,
> > > > > 
> > > > > First question: is the performance impact enough that it's worth 
> > > > > bothering about? Premature optimization, and all that. 
> > > > > 
> > > > > Second, how about initializing an array for each row, looping through 
> > > > > the models once, tacking the fields you want on to the arrays, and 
> > > > > then pulling from the arrays to construct the view?
> > > > > 
> > > > > Scott
> > > > > 
> > > > > 
> > > > > On Monday, September 17, 2012 11:15:40 AM UTC-7, Chris McCann wrote:
> > > > > > SD Ruby,
> > > > > > 
> > > > > > I'm wrestling with a view that displays data from a collection of 
> > > > > > model objects in an HTML table with the data from each model 
> > > > > > instance shown in a column.  I sense there's an elegant way to do 
> > > > > > what I'm trying to do but I'm at a loss as to how.
> > > > > > 
> > > > > > The markup below shows how the end result should look.  What I'm 
> > > > > > trying to avoid is having to look through the collection of 
> > > > > > instances to build each row.  
> > > > > > 
> > > > > > <div class="summary"> 
> > > > > > <table>
> > > > > > <tr>
> > > > > > <th class="first"><a href="#">Summary</a></th>
> > > > > > <!-- loop through collection and write this data for each instance 
> > > > > > -->
> > > > > > <th><a href="#">201 First St.</a></th> 
> > > > > > <th><a href="#">1133 Columbia St.</a></th>
> > > > > > </tr>
> > > > > > <tr>
> > > > > > <td class="first">Start Date</td>
> > > > > > <!-- loop through collection and write this data for each instance 
> > > > > > --> 
> > > > > > <td>01/01/2010</td>
> > > > > > <td>01/01/2010</td>
> > > > > > </tr>
> > > > > > <tr>
> > > > > > <td class="first">Term</td>
> > > > > > <!-- loop through collection and write this data for each instance 
> > > > > > --> 
> > > > > > <td>84 Months</td>
> > > > > > <td>84 Months</td>
> > > > > > </tr>
> > > > > > </table>
> > > > > > </div>
> > > > > > 
> > > > > > 
> > > > > > Is there a better, more Railsy approach that I'm just not seeing?  
> > > > > > The actual table is much more complex than what's shown here so I 
> > > > > > don't want to go the CSS-only no table route unless there's a 
> > > > > > really nice solution that entails not using tables.
> > > > > > 
> > > > > > Cheers,
> > > > > > 
> > > > > > Chris
> > > > > -- 
> > > > > SD Ruby mailing list
> > > > > [email protected] (mailto:[email protected])
> > > > > http://groups.google.com/group/sdruby
> > > > -- 
> > > > SD Ruby mailing list
> > > > [email protected] (mailto:[email protected])
> > > > http://groups.google.com/group/sdruby 
> > > 
> > > -- 
> > > SD Ruby mailing list
> > > [email protected] (mailto:[email protected])
> > > http://groups.google.com/group/sdruby
> > -- 
> > SD Ruby mailing list
> > [email protected] (mailto:[email protected])
> > http://groups.google.com/group/sdruby 
> 

-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby

Reply via email to