o sea, lo que vos querés hacer es correcto 2008/6/27 NachoKB <[EMAIL PROTECTED]>:
> 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
