wrt lo de la semántica de la tabla: los <th /> no necesariamente tienen que estar en la parte de arriba, mirá el ejemplo en [1].
[1]: http://www.w3.org/TR/html401/struct/tables.html#h-11.1 Nacho 2008/6/27 Eduardo Trápani <[EMAIL PROTECTED]>: > 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 >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
