Hola,
Estaba mostrando un registro que tiene muchos campos y me di cuenta de
que no podía seguir copiando y pegando la línea
<tr><th>Etiqueta</th><td>Campo</td></tr>.
Supongo que tiene que haber una manera más elegante. Probé la de abajo
y funciona, salvo para el campo contratista.nombre. Funciona tanto
'campo' como :campo pero no sé si hay manera de pedirle un campo de un
objeto asociado (y no sé si es más "a la ruby").
<table>
<% for i in [
{:label => 'Fecha',:field => 'date'},
{:label => 'Contratista',:field => 'contratista.nombre'},
{:label => 'Desde',:field => :desde},
{:label => 'Hasta',:field => :hasta},
{:label => 'Monto',:field => :amount}
] %>
<tr>
<th><%= i[:label] %></th><td class="sinborde"><%=
@contrato.send(i[:field]) %></td>
</tr>
<% end %>
</table>
En realidad puede ser que esté rompiendo varios patrones a la vez :).
De repente tengo que digerir todo en el controlador y pasarlo a la
vista, pero quedaba bastante bien así, como que se "ve" todo.
¿Ruby no tiene algo que me permita transformar un string a una llamada?
O podría poner algo como :field => @contrato.contratista.nombre pero ahí
estoy repitiendo @contrato, salvo que haya algo como el 'with' de Java,
pero no me doy cuenta.
Saludos, Eduardo.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar