Yo uso algunos muy básicos para arrancar las aplicaciones, lo podés
ver en http://github.com/djanowski/rails_basic_helpers. Por ahora moví
al repo lo que vos estás buscando, los helpers de tablas.

Ta, lo acabo de ver.  ¡Bárbaro!

Tengo un problema sin embargo (puede ser que semánticamente una tabla no deba 
ser así).  En mi tabla tengo:

<table>
 <tr>
    <th>Nombre</th><td>Ana Kournikova</td>
 </tr>
 <tr>
    <th>Profesión</th><td>Tenista</td>
 </tr>
</table>

O sea, cada campo tiene su propia línea, con el header a la izquierda y no 
todos los th arriba.

A tu código le agregué una opción, :single_horizontal y ahora hace lo que 
quiero.  En general recibe sólo un registro, pero si recibe varios arma una 
tabla para cada uno, con un renglón por campo cada una.  Se aprecian 
sugerencias sobre cómo mejorarlo.

 def table(source, options = {})
   return nil if source.blank?
html = '' headers = options[:headers]
   single_horizontal = options[:single_horizontal]
if headers and not single_horizontal
     html << content_tag(:thead,
                         content_tag(:tr,
      (headers == true ? source.delete_at(0) : headers).map {|col| 
content_tag(:th, col) }
     )
     )
   end
   if single_horizontal
     label = source.shift
source.inject(html) do |buffer,row|
     rows = ''
     row.each_index {|i| rows << content_tag(:tr,content_tag(:th,label[i]) + 
content_tag(:td,row[i]))}
     buffer << content_tag(:table,rows)
     end
     html
   else
     source.inject(html) do |buffer,row|
       buffer << content_tag(:tr, row.map {|col| content_tag(:td, 
*(Array(col))) })
       content_tag(:table, html, options)
     end
   end

De todas maneras, en tu caso te recomiendo que definas el método #to_s
en todos tus modelos y que devuelvas algo lógico para tu modelo (por

Sí, buena idea.  Me acuerdo que con el scaffolding había que definir name, si 
no había una columna con ese nombre.  Pero esto es mejor, porque todos lo usan. 
 Gracias.

Eduardo.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a