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

Responder a