[Ror-es] Duda de sintaxis - nombre de campo variable

Raul Murciano raul at murciano.net
Mon Mar 3 17:07:29 GMT 2008


Fernando Calatayud escribió:
> A la hora de sacar un campo en una vista, para leer los campos
> count_subtipo1, count_subtipo2, etc, puedo "componer" el nombre del
> campo mediante:
> eval("autor.count_subtipo#{@tema.subtipo_id}")
> 
> Y eso me devuelve, para un tema del subtipo 7, el contenido del campo
> count_subtipo7 de ese autor, que es justo lo que quería.
> 
> Pero esto que funciona para leer los campos, no funciona en el
> controlador para escribir:
> 
>         eval("@yo.count_subtipo#{@tema.subtipo_id}") += 1
>         @yo.eval("count_subtipo#{@tema.subtipo_id}") += 1
> 
> -> SyntaxError
> 
> ¿Sabéis cual es la sintaxis para lo que quiero hacer?
> 

Prueba esto:

   eval("@yo.count_subtipo#{@tema.subtipo_id} += 1")

Si no tienes mucha práctica ten mucho cuidado con lo que le puede llegar 
a eval, ya sabes lo que dicen con estas cosas: "un gran poder conlleva 
una gran responsabilidad" ;)

-- 
Raul Murciano - Freelance Web Developer
http://raul.murciano.net



More information about the Ror-es mailing list