Hola, algo que se me ocurre es, complementando las respuestas del resto, te fijes en la implementación del method_missing de active records. Lo que tenes que hacer vos es muy parecido al find_by_ de ActiveRecords, y la forma que lo resuelve es reimplementando justamente method_missing.
Saludos Mis dos centavitos Diego 2008/5/29 Esteban Fornal <[EMAIL PROTECTED]>: > fijate method_missing > > tenes cosas como: > > def method_missing(method, *args) > if find = method.to_s.match(/^has_(\w*)\?$/) > > ... > > 2008/5/29 Lautaro Bonetto <[EMAIL PROTECTED]>: > > Hola a todos. > > > > Necesito hacerles una consulta. > > Tengo un sistema en Rails y necesito agregar a un módulos varios métodos > que > > difieren entre sí sólo en un número. Quiero tratar de evitarme tener que > > escribirlos a todos. > > Existe alguna forma de "programar la programación"? Traté de hacerlo con > > EVAL, pero no me funcionó. Quizás lo hice mal. > > > > Ejemplo: Dos de los métodos son similares a estos: > > > > def tarea0_sum > > tot = 0 > > subtareas.each do |st| > > tot += st.tarea0 > > end > > return tot > > end > > > > def tarea1_sum > > tot = 0 > > subtareas.each do |st| > > tot += st.tarea1 > > end > > return tot > > end > > > > Tengo que escribir esta función "tareaXX_sum" 20 veces, y lo único que > varía > > es la parte de "tarea0" por "tarea1", "tarea2", "tarea3"... y así hasta > > "tarea20". > > > > Hay alguna forma de evitarme tipear todos los métodos en el modelo? > > > > Desde ya muchas gracias por la ayuda. > > > > -- > > Lautaro Bonetto > > http://lautaro-bonetto.neurona.com > > _______________________________________________ > > 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 > -- Diego Torres LIFIA - Laboratorio de Investigación y Formación en Informática Avanzada Facultad de Informática - Universidad Nacional de La Plata Calles 50 y 115 La Plata - 1900 Argentina Phone: +54 221 4228252 Ext: 220 Personal Web Page: http://www.lifia.info.unlp.edu.ar/en/dtorres.htm e-mail: [EMAIL PROTECTED]
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
